2017-08-06 100 views
0

我的环境是Ubuntu 14,Python 2.7。当我直接运行一个程序并使用函数os.system()时,它使用不同的python解释器。我的代码如下:为什么pycharm使用不同的python时os.system('python main.py')


# 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 
+0

你是如何配置它的? –

+0

对不起,'配置'是什么意思? – FreeTree0517

回答

0

PyCharm运行的Python在/home/Monday/Applications/anaconda2但是当你做os.system()运行任何Python是在PATH环境变量。为了解决这个问题,你可以改变你的PyCharm运行设置来设置PATH环境变量来首先放置Anaconda Python。

但更好的是,您应该不要从Python调用Python。将main.py更改为可导入的模块,而不是执行的“主”脚本。然后它会很简单:只要import main(或其他所谓的),并调用它的功能。这是一个更合适的设计,而且效率更高。

+0

谢谢。你能告诉我如何更改'路径环境变量'? – FreeTree0517

+0

@ FreeTree0517:https://stackoverflow.com/questions/8732119/pycharm-path-on-os-x –

相关问题