Tôi đang cố gắng tìm ra cách xây dựng một gói nguồn Python có thể cài đặt được qua pip. Tôi đã thử tạo một dự án thử nghiệm với tệp setup.py được mô tả trên http://packages.python.org/an_example_pypi_project/setuptools.html và một số tệp thử nghiệm đơn giản trong các thư mục được chỉ định.cài đặt gói tarball nguồn Python với pip
Sau khi tạo một tarball nguồn cho các dự án có tên dist/an_example_pypi_project-0.0.4.tar.gz
với python setup.py sdist
, tôi đã cố gắng cài đặt nó trong một môi trường virtualenv gọi ~/TEST
với ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz
. Mặc dù pip không ném bất kỳ lỗi, nó dường như không phải cài đặt gói:
$ ~/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*"
$
Lưu ý rằng tôi đã có thể cài đặt từ tarball sử dụng 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
Tôi bỏ qua để cấu hình một cái gì đó trong gói để làm cho nó có thể cài đặt với pip? Tôi đang sử dụng Python 2.7.2, phân phối 0.6.21, virtualenv 1.7 và pip 1.0.2.
Sự cố dường như chỉ phát sinh khi tôi gọi pip trong khi thư mục hiện tại chứa thư mục nguồn của dự án. Dường như sự hiện diện của thư mục con .egg-info được tạo sau khi xây dựng pip gây nhầm lẫn phân phối nguồn. Không chắc chắn nếu đây là một lỗi - Tôi sẽ hỏi các nhà phát triển pip. – lebedov
Để tham khảo trong tương lai, đây là yêu cầu: https://github.com/pypa/pip/issues/414 – lebedov
Điều này phù hợp với dự án của tôi và tôi cũng có thông tin .egg. Bạn đã xem các thư mục của mình bằng cách sử dụng 'cây' chưa? –