我的环境是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
(或任何它的名字(,并在其上调用函数。 这是一个更合适的设计,也更有效。