我有一个正在处理的包(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
文件都有以下内容:
问题:
问题是,当我尝试使用ldb.algebra
时,它报告找不到包。只是为了确保它没有完全丢失我尝试导入的所有东西ldb.lapack
,而且效果很好。这表明我遇到了一个命名空间包问题。似乎有人问过类似的问题here(遗憾的是没有答案)。在研究我的virtualenv的目录结构后,我发现在ve_pypy/site-packages/
下有一个用于ldb
命名空间包的文件夹,其中包含lapack
包,但不包括{LDB_Algebra-0.3.2-py2.7.egg
。在ldb
目录中的egg文件中是一个带有适当名称空间声明的__init__.py
文件(如上所述)。假设这应该是它从中获取ldb.algebra
包的地方,但它没有在那里查找。在
问题:
有谁能通过推荐信来确认我所看到的是一个已知的问题(即,我并不是做了一些导致所有这些麻烦的轻微错误)?eggs和w/e创建的pip安装方法(位于site-packages
下的ldb
包目录)是否根本不兼容?
假设第一个问题的答案是我的包安装方法根本上是有缺陷的,那么有没有更简单的方法从pypi安装LDB_LAPACK
包,从本地目录安装LDB_Algebra
包?我不是setuptools的天才,所以答案可能很简单(不要忽略显而易见的)。
显然这是一个well known problem。我建议的解决方案是使用}。在
pip install .
,而不是{相关问题 更多 >
编程相关推荐