[英]Add path to python package to sys.path
我有一種情況需要將python軟件包的路徑添加到sys.path
(而不是其父目錄),但是通常按名稱引用該軟件包。 也許這很奇怪,但是讓我舉例說明我需要什么,也許你們知道如何實現這一目標。
我在/ home / me / python之類的路徑中擁有各種實驗性文件夾,模塊等。 現在,我不想將該文件夾添加到我的sys.path
( PYTHONPATH
)中,因為有一些實驗性模塊,其名稱可能與有用的名稱沖突。 但是,在/home/me/python
我想要一個類似pyutils
的文件夾。 所以我想將/home/me/python/pyutils
到PYTHONPATH
,但是,能夠通過其名稱pyutils
來引用該包...就像我將/home/me/python
到路徑中一樣。
一個有用的事實是,向python路徑添加內容不同於將其導入到解釋器中。 您可以對模塊和子模塊進行結構化,以免名稱沖突。
在這里查看有關如何創建模塊的信息。 我閱讀了文檔,但我認為模塊布局需要邊做邊學,這意味着創建模塊,然后將其導入腳本,並查看導入是否笨拙或需要太多資格。
單獨考慮python導入系統 。 導入某些內容時,可以使用“導入...為”功能在導入時為其命名不同的名稱,從而防止命名沖突。
您似乎已經了解了如何使用sys.path()更改PYTHONPATH,如此處所述 。
您有多種選擇:
pyutilsdir
,將pyutils
放在pyutilsdir
,然后將pyutilsdir
添加到PYTHONPATH中。 /home/me/python
之外,然后將python
添加到您的PYTHONPATH
。 python
添加到PYTHONPATH
。 使用git
或hg
類的版本控制系統,以根據需要使實驗模塊可用或不可用。
您可以擁有一個沒有實驗模塊的master
分支,以及一個包含它們的feature
分支。 例如,使用git,您可以使用
git checkout [master|feature]
/home/me/python/pyutils
(git repo目錄)的內容將根據簽出的提交而改變。 因此,使用版本控制,您可以將實驗模塊保留在pyutils
,但僅在簽出feature
分支時才使它們存在。
我會回答我自己的問題,因為我在寫問題時有個主意,也許有人會需要。 我從該文件夾向我的site-packages文件夾添加了一個鏈接,如下所示: ln -s /home/me/python/pyutils /path/to/site-packages/pyutils
然后,由於PYTHONPATH包含/path/to/site-packages
文件夾,並且其中有一個pyutils
文件夾(帶有init .py),因此我可以像這樣導入:
from pyutils import mymodule
/home/me/python
的其余部分不在PYTHONPATH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.