2017-04-26 81 views
0

我想對GitHub上的公共項目進行更改(並可能對其做任何貢獻)。我分叉並克隆了模塊,但Im不清楚如何讓我的程序導入本地庫,而不是「官方」安裝的模塊。在Python中導入分叉模塊而不是已安裝的模塊

我想它克隆到我的項目文件夾,但是當我導入它,並試圖使用它,事情變得怪異calmap\calmap.plot()

我也想這樣做sys.path.append和文件夾的位置。但它似乎仍然是進口官方產品而不是叉頭。

我假設我可以把我的程序放在模塊文件夾內,這樣就可以首先找到模塊,但是我無法想象那是'正確'的方法。

| 
|-->My_Project_Folder/ 
| 
|-->Forked_Module/ 
    |-->docs/ 
    |-->Forked_Module/ 
      |-->__init__.py 
+0

這是一種情況,其中_best_選項可能在像[virtualenv]這樣的虛擬環境中運行fork(https://virtualenv.pypa.io/en/stable/ )或[anaconda](https://www.continuum.io/downloads)。 – mgilson

+0

這種類型的重複問題http://stackoverflow.com/questions/23075397/python-how-to-edit-an-installed-package – Rajaram

+0

爲什麼不把Forked_Module根放入My_Project_Folder並從那裏導入模塊?比較[python - 從子文件夾導入模塊](http://stackoverflow.com/questions/8953844/import-module-from-subfolder) – keocra

回答

1

如果您已經在使用anaconda,那麼您可以創建一個新的環境來開發此功能。

首先,創建一個新的環境:

# develop_lib is the name of the environment. 
# You can pick anything that is memorable instead. 
# You can also use whatever python version you require ... 
conda create -n develop_lib python3.5 

一旦你的環境,那麼你可能想在當前會話進入這樣的環境:

source activate develop_lib 

好了,現在你設置了環境,你可能需要爲你正在開發的任何第三方庫安裝一些要求。我不知道這些依賴關係是什麼,但是您可以使用conda install(如果它們可用)或使用pip將它們安裝在您的環境中。現在您已準備好開始使用要更新的庫。 python setup.py develop應該可用,假定該包具有標準構建過程。運行後,事情應該很好。您可以進行更改,運行測試等。

+0

加入'develop'標誌似乎是個訣竅。謝天謝地,如果我在anaconda環境處於活動狀態時打開筆記本內核,它似乎認識到我需要本地的calmap版本。 – DChaps

0

如果使用sys.path.append()如果沒有前面的包含您要導入的模塊將被用於新的「路徑」。如果你想要的「添加路徑」擁有優先都是上了年紀,你必須使用

sys.path.insert(0, "path") 

這樣,如果打印sys.path你會看到添加的路徑是在列表的開始並且您正在導入的模塊將從您指定的路徑加載。

+0

雖然路徑正確添加到「sys.path」,但沒有工作。我應該加入'/ Users /.../calmap'還是'/ Users /.../calmap/calmap'?任何其他想法或其他有助於我提供的信息? – DChaps

+0

對於示例樹,您在您的問題中發佈了:'sys.path.insert(0,'/ Users /...../ Forked_Module')'。然後使用'import Forked_Module'導入。如果這不起作用,則實際使用的行後面跟着'print sys.path'。 –