我已经使用setuptools和pip一段时间来为我的项目创建分发包,所有命令都能正常工作,例如“python setup.py sdist”、“python setup.py install”。现在我想使用pip以“editable”的方式进行安装,以便在维护此软件包时更容易进行测试。因此,我尝试了以下操作:
cd \
pip install -e .\mypackage
这将路径c:\mypackage添加到C:\python27\Lib\site-packages\easy-install.pth中。然而,在我的情况下,这是错误的,因为mypackage的结构如下:
C:\mypackage
setup.py
src
mypackage
__init__.py
...
docs
tests
因此,easy-install.pth 应包含 c:\mypackage\src,而不是 c:\mypackage。我可以手动编辑 easy-install.pth,在添加的路径中加入 "\src",然后 "import mypackage" 就会成功,就像应该的那样。如果我从 c:\mypackage 运行命令 "python setup.py develop",则会出现相同的问题,因此问题很可能在 setuptools 级别上。
setup.py 包含以下内容:
setup(
...
packages = find_packages('src'),
package_dir = {'mypackage': 'src/mypackage'},
...
)
(其他设置参数为作者、版本等文本项,由于与问题无关,不列出)。
我希望不必在easy-install.pth中编辑路径。查阅了文档,未发现将软件包源根目录放在与setup.py分离的文件夹中会造成问题的任何迹象。我做错了什么吗?