2015-10-12 200 views
4

我的默認Python二進制文件被設置爲Python的Anaconda發行版。這在/home/karnivaurus/anaconda/bin/python找到,並且我通過將文件添加到export PATH=/home/karnivaurus/anaconda/bin:$PATH來實現這個默認設置。導入Python模塊可以從命令行運行,但不能從PyCharm運行

我也有一個Python包稱爲caffe,它位於/home/karnivaurus/caffe/distribute/python,我已經加入到我的.bashrc文件下面添加到了包的搜索路徑:export PYTHONPATH=${PYTHONPATH}:/home/karnivaurus/caffe/distribute/python

現在,我有一個簡單的Python文件,名爲test.py,具有以下內容:

import caffe 
print "Done." 

如果我輸入python test.py到終端運行此,它運行良好,打印出「完成。」我遇到的問題是當我在PyCharm IDE中運行它時。在PyCharm中,我設置瞭解釋器爲/home/karnivaurus/anaconda/bin/python。但是,當我在PyCharm打開test.py,並在IDE中運行該文件,我得到以下錯誤:

ImportError: No module named caffe 

所以我的問題是:爲什麼PyCharm找不到caffe模塊當它運行的Python腳本,但當我從終端運行腳本時可以找到它?

謝謝!

回答

2

有幾件事情可以導致這種情況。要進行調試,請修改test.py像這樣:

# Is it the same python interpreter? 
import sys 
print(sys.executable) 

# Is it the same working directory? 
import os 
print(os.getcwd()) 

# Are there any discrepancies in sys.path? 
# this is the list python searches, sequentially, for import locations 
# some environment variables can fcuk with this list 
print(sys.path) 

import caffe 
print "Done." 

在這兩種情況下再次嘗試發現在運行時環境的差異。


編輯:有致PYTHONPATH環境變量sys.path的差異。這是通過.bashrc文件在shell中設置的,但未在PyCharm的運行時環境配置中設置。

+0

謝謝,這幫助。事實證明,當我在終端中運行它時,目錄'/ home/karnivaurus/caffe/distribute/python'在路徑上,但不在PyCharm中運行。因此,似乎PyCharm不使用PYTHONPATH環境變量,而是使用自己的方法搜索模塊... – Karnivaurus

+1

在pycharm運行時配置中有一個對話框,您可以在其中設置PYTHONPATH環境變量。它會搜索它,如果你添加它。 pycharm沒有理由使用您在.bashrc中修改的環境變量,因爲pycharm不使用bash。 – wim

0

對於其他選項,您可以按終端使用pycharm。並預先輸出相應的環境路徑。這對我有用。我認爲這比在代碼中進行一些更改要好。調試後,您需要通過終端運行代碼。

例如,在終端類型:

$ export LD_LIBRARY_PATH=~/build_master_release/lib:/usr/local/cudnn/v5/lib64:~/anaconda2/lib:$LD_LIBRARY_PATH 
$ export PYTHONPATH=~/build_master_release/python:$PYTHONPATH 

通過魅力然後運行pycharm(pycharm可軟通過bash的魅力連接):

$ charm 
相關問題