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

7 篇文章 0 订阅
2 篇文章 0 订阅

问题来源:

用惯了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模块导入与添加当前工作目录到默认搜索路径

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 可能存在以下几种情况: 1. 模块路径不在系统路径里面,需要手动添加路径,可以使用sys.path.append("模块路径")添加。 2. 模块没有安装完全,需要重新安装。 3. 模块Python版本不兼容,需要安装与Python版本相对应的模块。 4. 模块名字写错了,需要检查是否写错了模块名字。 5. 系统没有权限读取该模块,需要通过管理员权限打开Python解释器。 ### 回答2: 如果你已经安装了Python模块,但是无法通过import语句导入模块,以下是一些常见的解决方法: 1. 检查模块的名称和大小写。Python模块名称是大小写敏感的,确保你在import语句使用了正确的名称。 2. 确保你已经正确地安装了模块。你可以使用pip或conda等包管理工具来安装模块。检查一下模块的安装路径是否正确,并且模块的文件确实存在。 3. 检查Python模块搜索路径。当你使用import语句导入一个模块时,Python搜索指定的目录以找到该模块。你可以使用sys模块的sys.path属性来查看模块搜索路径。确保你的模块安装在sys.path的一个目录下。 4. 检查模块依赖。有些模块可能依赖于其他的模块,在导入模块之前,你需要确保这些依赖模块也已经正确地安装。 5. 检查Python的环境变量。有时候,你需要将模块所在的路径添加Python的环境变量。你可以将模块路径添加PYTHONPATH环境变量,这样Python就能够找到该模块。 6. 检查操作系统的权限。如果你在Windows上使用Python,确保你有足够的权限来访问模块文件。如果你在Linux上使用Python,确保模块文件的权限设置正确。 7. 检查模块是否在你的Python版本可用。有些模块可能只兼容特定的Python版本,确保你的Python版本和模块的兼容性。 如果你仍然无法导入模块,你可以查看模块的文档或在官方的Python社区寻求帮助。 ### 回答3: 当我们在Python遇到无法导入已安装模块的问题时,可能是以下几个原因导致的: 1. 模块没有成功安装:首先要确保模块已经成功安装在Python环境。可以通过在命令行使用pip命令(例如pip install 模块名)来安装模块,确认是否安装成功。 2. 模块安装位置不正确:有时候我们使用了多个Python环境,或者默认的安装路径不正确,导致Python无法找到模块。可以通过在命令行使用pip show 模块名命令来查看模块的安装位置,以确认是否在Python的环境。 3. 环境变量未设置:如果模块已经成功安装,但仍无法导入,可能是因为没有正确设置环境变量。在Windows系统,可以通过将Python安装路径添加到系统的Path环境变量来解决问题。在Mac或Linux系统,需要使用export命令将Python路径添加到系统的PATH环境变量。 4. 同名模块冲突:有时候Python环境存在多个同名的模块,可能会导致无法正确导入。可以尝试在导入模块时使用完整的包路径(例如import 包名.模块名)来避免冲突。 5. 模块版本不兼容:有时候模块的版本与Python环境不兼容,可能会导致无法导入。可以尝试升级或降级模块的版本,或者更新Python环境来解决兼容性问题。 总之,当遇到无法导入已安装模块的问题时,一定要仔细检查模块的安装情况、环境变量的设置以及模块的兼容性等因素,以解决导入问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值