我知道模塊的名稱不應該有破折號。python模塊駐留在名稱中包含破折號字符的存儲庫中
這裏是我的倉庫結構
my-repo-name/
src/
tests/
__init__.py
tests.py
fab/
__init__.py
fabfile.py
README.rst
__init__.py
在我的測試中,我需要進口fabfile.py運行測試。但因爲名稱有短劃線,所以我不能執行from my-module-name.fab.fabfile import X,Y,Z
或相對導入,因爲它是非包。
任何建議如何做到這一點沒有與__import__(...)
黑客或將其添加到sys路徑?我應該只添加另一個目錄嗎?
我想改變你的回購協議的名稱可能是你最好的選擇,因爲你不能用它在蟒蛇的名稱中短線做任何事情。其次,最好的辦法是在不同的(可導入的)名稱下創建一個到該目錄的符號鏈接。 – mgilson 2012-07-25 17:47:07
謝謝..但我見過使用名稱中帶短劃線的存儲庫的人。一個符號鏈接...我想過它,但'hg'使硬鏈接。也許問題是更多關於如何構建我的回購,以便它不實際從'my-repo-name'導入?謝謝。 – user1012451 2012-07-25 17:48:22
一個存儲庫,當然。大多數情況下,repo不是模塊/軟件包,它是模塊/軟件包目錄的容器......並且名稱中不能有短劃線。 – 2012-07-25 17:49:49