pycharm远程服务器跑os.system调用python版本问题

本文探讨了PyCharm远程运行程序时出现ImportError的问题,并详细分析了错误原因在于不同Python版本间的包调用差异。作者分享了解决方案,即明确指定Python解释器路径以确保正确加载第三方模块。

Pycharm远程连服务器跑程序,结果老是报错

ImportError: No module named xmltodict

然而我明明已经安装了xmltodict。

通过在各处测试所调用的python版本,发现问题出在这里

os.system('python ' + clean_annotation_path + ' ' + temp_JPEGImages + ' ' + temp_Annotations + ' -r ' + os.path.join(temp, 're'))

在这一句之前,都是使用python3.6,来自我个人的路径,因为我在bashrc里已经做好了设置。

export PATH="/home/wei/miniconda3/bin:$PATH"
alias pip="/home/wei/miniconda3/bin/pip"
alias python="/home/wei/miniconda3/bin/python"
alias python3="/home/wei/miniconda3/bin/python3"

然而这一句调用的却是python2.7,来自系统路径

/usr/bin/python

这样我安装的那些包当然就找不到了。

没有找到原因。在服务器上直接运行python命令是不会搞错的,用pycharm远程运行py文件且文件中执行os.system()来调用python就会调错。

最后只好使用

os.system('/home/wei/miniconda3/bin/python ' + clean_annotation_path + ' ' + temp_JPEGImages + ' ' + temp_Annotations + ' -r ' + os.path.join(temp, 're'))


BTW,获取当前文件所在目录的绝对路径方式如下:

dataset_helper_path = os.path.dirname(os.path.realpath(__file__))  #获取当前文件所在目录的绝对路径

如果用以下语句可能得到相对路径:

dataset_helper_path = os.path.dirname(os.path.realpath(__file__))

在使用 PyCharm 调试时,如果发现 `os.system()` 没有执行,可能的原因及解决办法如下: 1. **检查代码逻辑**:确保 `os.system()` 调用的命令是正确的,并且在调试过程中确实到达了该代码段。可以在 `os.system()` 调用前后添加打印语句,确认程序流程是否按预期执行。 2. **环境配置问题**:确保 PyCharm 的调试器配置正确,特别是工作目录和环境变量设置。有时候,`os.system()` 依赖于特定的环境变量或当前工作目录,如果这些设置不正确,可能会导致命令无法执行。 3. **权限问题**:某些系统命令需要特定的权限才能执行。确保运行 PyCharm 的用户具有执行这些命令所需的权限。 4. **终端输出重定向**:在调试模式下,`os.system()` 执行的结果可能不会立即显示在控制台中,因为输出可能被缓冲。可以尝试在调用 `os.system()` 后添加 `sys.stdout.flush()` 来强制刷新输出缓冲区。 5. **使用替代方法**:如果 `os.system()` 仍然无法正常工作,可以考虑使用 `subprocess` 模块来代替。例如: ```python import subprocess subprocess.run(["command", "arg1", "arg2"]) ``` 6. **PyCharm 设置问题**:有时 PyCharm 自身的设置可能导致调试器行为异常。可以尝试重启 PyCharm 或者重新配置调试器设置。 7. **查看日志和错误信息**:仔细检查 PyCharm 控制台输出的日志和错误信息,这有助于定位问题所在。特别是要注意是否有任何关于 `os.system()` 或相关命令执行失败的警告或错误消息。 8. **测试独立脚本**:将包含 `os.system()` 的代码保存为独立的 Python 脚本并在命令行中直接运行,以排除 PyCharm 调试器的影响。这样可以帮助确定问题是出在代码本身还是调试器配置上。 9. **更新软件版本**:确保使用的 PyCharmPython 版本都是最新的稳定版。旧版本可能存在已知的问题,这些问题可能已经在新版本中得到了修复。 10. **社区和支持资源**:查阅 PyCharm 官方文档、论坛以及 Stack Overflow 等社区资源,寻找类似问题的解决方案。其他开发者的经验分享可能会提供有用的线索。 通过以上步骤,应该能够帮助排查并解决 PyCharm 调试时不执行 `os.system()` 的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值