我想弄清楚如何构建可通过pip安装的Python源码包。我尝试使用在http://packages.python.org/an_example_pypi_project/setuptools.html 上描述的setup.py文件和指定目录中的许多简单测试文件创建一个测试项目。用pip安装Python软件包源码包
创建名为dist/an_example_pypi_project-0.0.4.tar.gz
与python setup.py sdist
项目源压缩包后,我尝试安装它在virtualenv中环境称为~/TEST
与 ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz
。虽然PIP没有抛出任何错误,它似乎没有安装的软件包:
$ ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz
Unpacking ./dist/an_example_pypi_project-0.0.4.tar.gz
Running setup.py egg_info for package from file:///home/lebedov/an_example_pypi_project/dist/an_example_pypi_project-0.0.4.tar.gz
Cleaning up...
$ find ~/TEST -name "an_example*"
$
请注意,我用的easy_install能够从压缩包安装:
$ ~/TEST/bin/easy_install dist/an_example_pypi_project-0.0.4.tar.gz
Processing an_example_pypi_project-0.0.4.tar.gz
Running an_example_pypi_project-0.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tfXxeW/an_example_pypi_project-0.0.4/egg-dist-tmp-N2QY_N
warning: build_py: byte-compiling is disabled, skipping.
warning: install_lib: byte-compiling is disabled, skipping.
zip_safe flag not set; analyzing archive contents...
Adding an-example-pypi-project 0.0.4 to easy-install.pth file
Installed /home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg
Processing dependencies for an-example-pypi-project==0.0.4
Finished processing dependencies for an-example-pypi-project==0.0.4
$ find ~/TEST/ -name "an_example*"
/home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg
难道我忽略了配置包中的东西,以便使用pip进行安装?我使用Python 2.7.2,分发0.6.21,virtualenv 1.7和pip 1.0.2。
这个问题似乎只在我调用pip时出现,而当前目录是包含项目源的目录。看起来,构建源代码发布之后创建的.egg-info子目录的存在会混淆pip。不知道这是否是一个错误 - 我会问问小开发者。 – lebedov 2011-12-20 18:35:52
为了将来的参考,这里是查询:https://github.com/pypa/pip/issues/414 – lebedov 2011-12-20 18:51:22
这适用于我的项目,我也有.egg-info。你有没有用'tree'来看看你的目录? – 2011-12-27 17:57:15