2014-05-13 83 views
1

我有一個Python項目,它包含三個組件:主要可執行腳本,這些腳本依賴的模塊以及這些腳本處理的數據(sqlite3數據庫,平面文件等)。頂層有一個__init__.py文件,以便其他程序也可以根據需要借用模塊。我應該將我的Python項目添加到site-packages目錄,還是將我的項目追加到PYTHONPATH中?

問題是,將項目移動到默認站點包目錄,還是修改PYTHONPATH以包含我的項目上方的一個目錄(以便項目可以從中導入)是更「Pythonic」還是「正確」 )?一方面,我描述的不是嚴格的「包裝」,而是一個可以被當作包裝的數據的「項目」。所以我傾向於修改PYTHONPATH(畢竟,PYTHONPATH必須存在的理由,對吧?)

+0

PYTHONPATH,手下來。 –

回答

1

絕對不要將您的項目添加到網站包這將破壞您的系統Python安裝並將在此刻還有其他應用程序會回來,或者您需要安裝一些東西。

有在最後兩點流行的選擇在隔離的方式

安裝Python應用程序使用的virtualenv

見的virtualenv項目。它允許

  • 創造新的隔離Python環境 - 蟒蛇這個環境是系統中的一個不同的,有它自己的PYTHONPATH設置這允許保留所有已安裝的軟件包私人它。
  • 命令行使用命令行激活和禁用給定的virtualenv。在activate之後,你可以運行pip install等,它只會影響virtualenv的安裝。
  • 由virtualenv中的Python副本開始調用任何Python腳本 - 這將使用相關的virtualenv(注意,沒有必要調用任何activate)使用zc.buildout

    這個包提供命令buildout

。有了這個,你可以使用特殊的配置文件,這允許創建包含所有包和腳本的本地python環境。

結論

  • virtualenv似乎更流行的今天,我覺得更容易學習和使用
  • zc.buildout可能也爲你工作,但時間長一點學習時間
  • 安裝準備進入系統Python目錄應始終保留用於非常特殊的情況(pip,easy_install),最好避免它。
  • 安裝到私人目錄和manipulatig PYTHONPATH也是一種選擇,但你會重複,什麼virtualenv已經提供
相關問題