ubuntu终端运行python找不到模块_命令行运行python模块时提示包找不到的问题

庄稼人不是专职python开发的道友。尽管与python相识已多年,可惜相识不相知,仅仅是偶尔借助pydev写一些简单的小工具。

多年来。一直困惑于这样一个问题:相同的project。相同的代码,使用pydev能够执行随意一个python脚本,而使用命令行执行却不行?命令行下(或者双击执行)总是提示“ImportError: No module named xxx”?pydev到底做了什么魔术呢?

Center

长话短说,以上面project为例,假设是在命令行中直接执行 python c.py , 都会提示"ImportError: No module named xx_package.b".可是pydev中能够直接执行。

比較两者的包查找路径,也就是sys.path。

pythondev:

['F:\\Archive\\workspace-java\\PyExperiment\\xx_package', 'F:\\Archive\\workspace-java\\PyExperiment', 'F:\\Archive\\workspace-java\\PyExperiment\\xx_folder' 。。

。。]

命令行:

['F:\\Archive\\workspace-java\\PyExperiment\\xx_package', 。。。]

什么都不用说了,明眼人一看就明确了。pydev在执行时会把当前project的全部文件夹路径都作为包的搜索路径,而命令行默认仅仅是搜索当前路径。也于是乎。xx_packag

### 可能的原因分析 在Ubuntu系统中安装Python之后遇到命令行无法启动的情况,可能由多种原因引起。一种可能是由于更新或重新安装Python的过程中破坏了系统的默认依赖关系或者路径设置。 如果通过`sudo apt-get install python`这样的指令来安装Python版本,可能会覆盖掉系统原本使用的Python解释器,而某些Linux发行版(如Ubuntu)内部工具和服务严重依赖于特定版本的Python解释器及其文件[^1]。 ### 解决策略 #### 方法一:修复损坏的管理器链接 尝试恢复被修改的基础环境配置: ```bash sudo ln -sf /usr/bin/python3.6 /usr/bin/python # 如果是针对Python 3.6版本 ``` 这条语句的作用是在 `/usr/bin/` 下建立指向正确Python版本的软连接,从而让系统能够到合适的Python执行程序。 #### 方法二:重置shell初始化脚本 有个人用户的`.bashrc`或其他shell配置文件中的自定义设置也可能干扰到正常运行。可以考虑备份当前的`.bashrc`文件后再将其替换回初始状态: ```bash mv ~/.bashrc{,.bak} cp /etc/skel/.bashrc ~/ source ~/.bashrc ``` 上述操作会将现有的.bashrc改名为.bashrc.bak作为备份,并从/etc/skel目录复制一份干净的新.bashrc至用户家目录下,最后使新的.bashrc生效。 #### 方法三:检查并修正PATH变量 确保PATH环境变量含了必要的路径项,特别是当手动编译安装软件可能导致此问题。可以在终端里临添加如下命令查看效果: ```bash export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" echo $PATH ``` 这一步骤是为了确认$PATH环境中是否缺少重要的可执行文件所在位置的信息。 ### 进阶建议 对于开发人员来说,在处理多版本共存的需求推荐使用虚拟环境工具如virtualenv或venv模块,以及Anaconda这类集成化解决方案,它们可以帮助隔离不同项目所需的Python环境,减少全局层面的影响[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值