2017-09-19 25 views
0

我有一個Python腳本,它使用gentle來轉錄一些音頻。Python導入只適用於從包目錄內運行

此刻我必須將我的文件複製到溫和的回購站,然後我可以import gentle並在代碼後面使用gentle,因爲我願意。

但是我寧願不必將我的文件複製到溫柔的目錄中。我曾試圖改變進口import gentle.gentle但無論哪種方式從父目錄運行我的劇本時,我得到了以下錯誤:

Traceback (most recent call last): 
    File "process_text.py", line 6, in <module> 
    import gentle.gentle # or just import gentle 
    File "/usr/local/lib/python2.7/dist-packages/gentle/__init__.py", line 2, in <module> 
    from resources import Resources 
    File "/usr/local/lib/python2.7/dist-packages/gentle/resources.py", line 4, in <module> 
    from util.paths import get_resource, ENV_VAR 
ImportError: No module named util.paths 

是否有使用模塊,而無需我的腳本複製到其目錄的簡單方法?謝謝!

+2

這個問題很難直接回答,因爲有幾種方法可以解決這個問題。但我的建議是將**包裝到你的腳本/項目中,然後將'gentle'聲明爲它的**依賴**,這樣你就可以像使用其他Python包一樣安裝自己的包。查看https://packaging.python.org - 特別是[Packaging and Distributing Projects](https://packaging.python.org/tutorials/distributing-packages/)章節,瞭解如何創建自己的Python包。 –

回答

1

對此問題有很多修復,請參閱文檔中的教程頁面以獲取更多信息https://docs.python.org/3/tutorial/modules.html

基本上,如果gentle是PIP安裝的,你可能想嘗試使用安裝它:

pip install --user gentle 

或者你可能希望創建任何condavirtualenv的環境。 或者,您可以設置您的PYTHONPATH環境變量以包含您需要的路徑,例如,

PYTHONPATH="/path/to/lib:$PYTHONPATH" python /path/to/script.py