[英]Namespace package conflict
我有一個正在使用的軟件包( LDB_Algebra )。 它有一個額外的依賴於我創建的另一個包( LDB_LAPACK )。 我創建了一個virtualenv並安裝了以下每個軟件包:
$ virtualenv -p pypy ve_pypy
$ . ve_pypy/bin/activate
(ve_pypy) $ pip install LDB_LAPACK
...
(ve_pypy) $ python setup.py install
... (Installs LDB_Algebra)
每個文件在ldb軟件包下的__init__.py
文件都有以下內容:
__import__('pkg_resources').declare_namespace(__name__)
問題:
麻煩在於,當我嘗試使用ldb.algebra
它報告找不到軟件包。 只是為了確保它沒有完全丟失我嘗試導入ldb.lapack
所有內容,並且一切正常。 這向我表明我遇到了名稱空間包問題。 似乎在這里提出了類似的問題(可悲的是沒有答案)。 在研究我的virtualenv的目錄結構后,我發現在ve_pypy/site-packages/
有一個用於ldb
名稱空間包的文件夾,其中包括lapack
包,但沒有algebra
包。 我還看到了一個雞蛋文件LDB_Algebra-0.3.2-py2.7.egg
。 在ldb
目錄中的egg文件中,是一個__init__.py
文件,帶有相應的名稱空間聲明(如上所述)。 大概這應該是從那里獲取ldb.algebra
包的地方,但是它不在那兒。
問題:
任何人都可以參考我所看到的是一個已知問題(即,我不只是在做一些導致所有這些麻煩的小錯誤)來確認嗎? 創建的ldb
和w / e pip安裝方法( site-packages
下的ldb
package目錄)是否根本不兼容?
假設回答第一個問題是,我的包安裝的方法是根本性的缺陷,有沒有安裝更簡單的方法LDB_LAPACK
一封來自PyPI包和LDB_Algebra
從我的本地目錄包? 我不是setuptools wiz或其他任何人,因此答案可能非常簡單(不要忽略明顯的地方)。
顯然,這是一個眾所周知的問題 。 向我建議並似乎可以正常使用的解決方案是使用pip install .
而不是python setup.py install
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.