簡體   English   中英

命名空間包沖突

[英]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包的地方,但是它不在那兒。

問題:

  1. 任何人都可以參考我所看到的是一個已知問題(即,我不只是在做一些導致所有這些麻煩的小錯誤)來確認嗎? 創建的ldb和w / e pip安裝方法( site-packages下的ldb package目錄)是否根本不兼容?

  2. 假設回答第一個問題是,我的包安裝的方法是根本性的缺陷,有沒有安裝更簡單的方法LDB_LAPACK一封來自PyPI包和LDB_Algebra從我的本地目錄包? 我不是setuptools wiz或其他任何人,因此答案可能非常簡單(不要忽略明顯的地方)。

顯然,這是一個眾所周知的問題 向我建議並似乎可以正常使用的解決方案是使用pip install . 而不是python setup.py install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM