2015-10-20 192 views
4

我想將我的項目部署到服務器並在那裏運行。 當我嘗試從命令行啓動腳本時,它在導入處於parrent目錄中的腳本時顯示錯誤 。從命令行運行PyCharm項目

我使用PyCharm製作了項目(python 2.7.10),它分散到多個目錄中。 個e-文件夾loock fimetnihg這樣的:

項目/目錄/子目錄/ main_dir/script1.py

from dir.subdir.other_dir.script2 import * //gives error here 

項目/目錄/子目錄/ other_dir/script2.py

def my_function(): 
    //do something 

我運行腳本,轉到main_dir並運行:python script1.py

回答

2

如果您從main_dir運行腳本,這意味着在運行Pyth時根據命令,你的相對參考是main_dir。所以你的進口是根據main_dir作爲你的根。

這意味着,如果我們把你的例如SCRIPT1,您的進口應該是這樣的:

from other_dir.script2 import * 

機會是你的PyCharm項目的根實際上是設置爲從

project/ 

運行這就是爲什麼你的引用在PyCharm中工作。

我建議你什麼做的是,如果你的服務器應該是內main_dir運行,那麼你應該讓其執行根源是爲了消除這種混亂一樣重新配置PyCharm。

1

在我的情況下,對這個問題的另一種解決方案是在觸發程序的python項目的根目錄中添加一個主要的 .py腳本。

項目/ __ main__.py:

from dir.subdir.other_dir.script2 import * //doesn't give errors 

這意味着,從終端調用程序時工作區將是正確和腳本的每個包含將具有正確映射(從根)的文件夾。

項目/目錄/子目錄/ main_dir/script1.py:

from dir.subdir.other_dir.script2 import * //also doesn't give errors 
相關問題