【Linux】在Linux中Python模块导入与添加当前工作目录到默认搜索路径

问题来源:

用惯了Pycharm的人,在其他IDE中运行比较复杂的python项目,特别是有许多自己写的类,模块导入往往会出现问题:

- Project- 	A- a.py- B- b.py
比如,在项目Project中,有A,B两个文件夹,a.py和b.py分别是它们的子文件,若b.py需要导入a.py中的某个模块m:

from A.a import m

直接运行b.py,报错
在这里插入图片描述
原因在于,系统不知道工程的根目录所在,而且我们不可能每次都使用cd跳转到a.py文件所在的文件夹

解决方案

  • 方案1:声明工程的根目录,将根目录添加到环境变量

    export PYTHONPATH=/home/bin/module:$“工程根目录路径”
    
  • 方案2:添加当前工作目录到默认模块搜索路径

workon                    # 虚拟环境
python3                   # 进入python编辑器  

# 找到python的sitepackages路径
improt site
site.getsitepackages()

在这里插入图片描述
在site-packaegs添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称,然后保存退出就好了

# 新建mypkpath.pth
vim "site-packages的路径/mypkpath.pth"

# 输入当前工作目录, 保存退出
/root/py

重新进入python编译器,查看当前搜索路径,发现多了/root/py

workon                    # 虚拟环境
python3                   # 进入python编辑器  

# 查看当前搜索路径
improt sys
sys.path

在这里插入图片描述

windows中添加方式,可参照:

Windows中Python模块导入与添加当前工作目录到默认搜索路径

原创文章 36 获赞 32 访问量 2768

猜你喜欢

转载自blog.csdn.net/weixin_43868754/article/details/104800827
今日推荐