我维护的包中的setup.py
文件使用另一个包中的代码来生成扩展:
from setuptools import setup, find_packages
from mydependence import build_ext
...
setup(
name='mypackage',
version='1.0.0',
...
setup_requires = [
'mydependence', # is this being checked properly?
],
...
install_requires = [
'mydependence',
],
...
)
我想用zc.buildout
构建当前包,因此我创建了一个简单的buildout.cfg
文件,如下所示:
不幸的是,这并不像我预期的那样工作-当我执行./bin/buildout
并且读取{setup.py
时,它的sys.path
不知道安装在eggs
目录下的包(除了setuptools
本身!)。显然,“eggs”和“development eggs”中的包在运行包的./bin/buildout
的路径中并不包括。在
问题是:如何实现这一目标?在
基本问题是,在调用
setup()
方法之前,已经从mydependence
导入。我看不出setuptools(或buildout)可以忽略您将得到的ImportError
。在如果我看一些示例代码,例如,http://pythonhosted.org/py2app/examples.html我会看到这样的代码:
注意,
py2app
没有导入。因此setup_requires
显然是一种将“扩展”加载到基本setuptools功能的方法。它不是一种规避基本python导入错误的方法。在更新:查看@MartijnPieters下面的评论,他在https://stackoverflow.com/a/12061891/27401中有一个解决方案。在
Martijn的例子是这样的:
^{pr2}$相关问题 更多 >
编程相关推荐