为什么 Pycharm 在 OS.system('Python main.py') 时使用不同的 Python



我的环境是ubuntu 14,Python 2.7。 当我直接使用函数 os.system(( 运行程序时,它使用不同的 python 解释器。我的代码如下:


# script.py
import tensorflow as tf
import os
print tf.__version__
print tf.__path__
command = 'python main.py'
os.system(command)

# main.py
import tensorflow as tf
print tf.__version__
print tf.__path__

当我跑 scripy.py 时,我得到了

1.2.1
['/home/Monday/Applications/anaconda2/lib/python2.7/site-packages/tensorflow']
0.12.1
['/usr/local/lib/python2.7/dist-packages/tensorflow']

当我跑 main.py 时,我得到了

1.2.1
['/home/Monday/Applications/anaconda2/lib/python2.7/site-packages/tensorflow']

我已将我的解释器设置如下:

Applications/anaconda2/lib/python2.7

PyCharm 在/home/Monday/Applications/anaconda2中运行 Python,但当你这样做时os.system()它会运行PATH环境中的任何 Python 变量。 要解决此问题,您可以更改 PyCharm 运行设置以设置 PATH 环境变量以将 Anaconda Python 放在首位。

但更好的是,你不应该从Python调用Python。 将main.py更改为可导入模块,而不是您执行的"主"脚本。 然后它就很简单了:只需import main(或任何它的名字(,并在其上调用函数。 这是一个更合适的设计,也更有效。

相关内容

  • 没有找到相关文章

最新更新