2015-05-18 27 views
70

Có sự khác biệt đáng kể giữa"PIP cài đặt --editable ./" vs "python setup.py phát triển"

pip install -e /path/to/mypackage 

và setuptools biến?

python /path/to/mypackage/setup.py develop 
+1

Đây dường như là liên kết được cập nhật mô tả chế độ phát triển: https://setuptools.readthedocs.io/en/latest/setuptools.html?highlight=development%20mode#develop-deploy-the-project-source-in- chế độ phát triển – PaulR

Trả lời

55

Không có sự khác biệt lớn.

Với pip install -e cho các dự án địa phương, thư mục "SomeProject.egg-info" được tạo tương ứng với đường dẫn dự án. Đây là một lợi thế so với việc chỉ sử dụng setup.py phát triển, tạo ra "thông tin trứng" trực tiếp tương ứng với thư mục làm việc hiện tại . thêm: docs

Cũng đọc setuptools' docs.

41

Một sự khác biệt nữa: pip install -e sử dụng bánh xe trong khi python setup.py develop
không sử dụng nó.

Với install, bạn có thể đạt được các hành vi tương tự bằng cách sử dụng thông tin
pip install -e /path/to/package --no-use-wheel

Thông tin thêm về bánh xe: python wheels

+4

Lưu ý rằng, theo https://pip.pypa.io/en/stable/reference/pip_install/, '--no-use-wheel' KHÔNG ĐƯỢC PHÉP có lợi cho' --no-binary: all : ' – Nzbuu

3

Một khác biệt có thể ủng hộ pip install -e là nếu dự án của bạn có phụ thuộc vào install_requires trong setup.py, sau đó pip install -e . cài đặt các phụ thuộc với pip, trong khi python setup.py develop có thể cài đặt với easy_install và có thể gây ra sự cố lại: 'thông tin trứng' như đã đề cập ở trên. Khi install-requires sử dụng dependency_links với URL git tùy chỉnh, với số nhận dạng trứng kèm theo, điều này có thể đặc biệt gây phiền nhiễu.

Các vấn đề liên quan