2016-11-25 13 views
0

我寫了一個小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 

但是路徑正確的。這正是代碼所在。

+0

從進口b''沒有什麼錯(實際上你引用的博客不推薦反對它)。 –

+0

你有沒有試過用pip安裝你的軟件包? –

+0

@AlexGarcia號我不希望用戶必須安裝任何東西(也許將來我會在那裏上傳它,雖然我從來沒有這樣做,也不知道如何去做以及需要哪些步驟),只要能夠從任何地方運行我的程序。 – Zelphir

回答

0

您可以:

如果您不需要其他用戶「進口」你的庫,但只是把它作爲一個獨立的程序,也可以只是把一個符號鏈接/腳本程序,makeing它從一個目錄可運行哪些在你的PATH中。

+0

你能幫我解釋符號鏈接嗎?你的意思是我應該爲運行我的程序的腳本創建一個符號鏈接,並且位於我目前必須調用我的程序的目錄中? – Zelphir

相關問題