2016-03-01 47 views
-1

爲什麼要在添加新的腳本/子模塊等後再次運行setup.py develop爲什麼在`setup.py develop`後新的子模塊不可用?

對於爲例我這樣做:

pyvenv venv 
. venv/bin/activate 

現在,創建這些文件:

/ 
| setup.py 
| testpkg 
| | __init__.py 
| | foo.py 
| |__ 
|__ 

(setup.py是一個簡單的,和foo.py包含一個函數) 然後,

python setup.py develop 

現在,如果你啓動python,你可以導入testpkg.foo

但現在,添加bar.py:

/ 
| setup.py 
| testpkg 
| | __init__.py 
| | foo.py 
| | bar.py  <--- 
| |__ 
|__ 

您不能導入testpkg.bar

如果再次

python setup.py develop 

爲什麼除了運行? (爲什麼沒有工作,爲什麼既然選擇了這種行爲,如果它預期的一個?)

NOTE(和編輯)

我的電腦上,運行python setup.py develop後,我注意到,該鏈接指向到build/lib/[...]。在蛋信息中,我看到源指向這個build/lib。這裏的文件不是鏈接,所以它應該如何工作?

+0

呃......爲什麼-1哦哦......我檢查這個問題還沒有問過了,這是因爲編輯模式的一個現實問題是不工作在我電腦... –

回答

0

檢查是否設置了標誌use_2to3。然後,醫生說:

如果您已經啓用了use_2to3標誌,那麼當然.egg鏈接時Python 3中, 下運行,因爲這源代碼將 不會直接鏈接到你的源代碼爲Python 2製作,不適用於Python 3下的 。相反,setup.py開發將構建構建目錄下的 下的Python 3代碼,並鏈接到那裏。這意味着在執行代碼 更改之後,您將必須運行setup.py build,然後Python 3安裝程序會提取 。

相關問題