我寫了一個小python program,並且我正在努力生成一個好的結構。使Python程序可以從任何地方運行
前幾天我看了一個blog和許多其他網站,其中建議對from a import b
進口和建議總是使用(什麼,我想導入項目根的完整路徑)進口import a.b
「項目絕對」路徑。作爲背景。
我收錄了一個__main__.py
,這樣我就可以用python -m <directory>
運行我的程序,這是在數百個python導入問題之一上使用stackoverflow的人的另一個建議。它應該有助於保持代碼的可運行和可測試的相同的導入結構,這是我的另一個項目中的一個問題。
現在我想要它,從我的系統中的任何地方,我可以運行python -m <dir of my code>
,而不僅僅是從一個目錄到RSTCitations
目錄。
我怎樣才能做到這一點,沒有:
- 蟒蛇路徑的操作(這是一個骯髒的黑客)
- 改變我的進口不知何故並得到一個不推薦進口結構
- 做其他的黑暗魔法我的代碼
我想堅持組織我的代碼的最佳實踐,但仍然希望它可以從我在終端中的任何位置運行。
失敗
當我運行該程序從另一個目錄完全無關的描述我的程序的例子,我得到例如以下錯誤:
/home/user/development/anaconda3/bin/python: No module named /home/user/development/rst-citations-to-raw-latex/RSTCitations
但是路徑是正確的。這正是代碼所在。
從進口b''沒有什麼錯(實際上你引用的博客不推薦反對它)。 –
你有沒有試過用pip安裝你的軟件包? –
@AlexGarcia號我不希望用戶必須安裝任何東西(也許將來我會在那裏上傳它,雖然我從來沒有這樣做,也不知道如何去做以及需要哪些步驟),只要能夠從任何地方運行我的程序。 – Zelphir