我想弄清楚如何構建可通過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