簡體   English   中英

為什么pycharm在os.system('python main.py')時使用不同的python

[英]why pycharm use different python when os.system('python main.py')

我的環境是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更改為可導入模塊,而不是您執行的“ main”腳本。 這樣就很簡單:只需import main (或任何它調用的),然后在其上調用函數。 這是一個更合適的設計,而且效率也更高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM