Python - cài đặt gói thủ công bằng virtualenv


82

Tôi có một chương trình python mà tôi muốn cài đặt vào virtualenv của mình - đó là một gói zip mà tôi cần giải nén và sau đó chạy chương trình setup.py - nhưng câu hỏi của tôi liên quan đến cách đưa các tệp đã giải nén này vào virtualenv của tôi để gói được cài đặt vào thư mục gói trang của virtualenv?

Tôi cũng có thể cài đặt từ bên trong virtualenv của mình bằng cách sử dụng pip install <package name>, nhưng vì một số lý do, gói mà PIP tải xuống đã lỗi thời.

Vì vậy - ai đó có thể cho tôi biết một vài bước đơn giản để cài đặt một gói theo cách thủ công không?

Cho đến nay tôi đã có các lệnh cơ bản để tải Virtualenv:

-bash-3.2$ source ~/.bashrc
-bash-3.2$ workon test
(test)-bash-3.2$ //Now I'm working on my virtualenv, but where do I go after this??

Vì vậy - có vấn đề gì khi tôi giải nén gói / chương trình python - hay tôi phải đăng nhập vào virtualenv trước khi giải nén? Sau khi tôi tải virtualenv lên và tôi đang sử dụng nó bằng lệnh 'workon test', liệu bất kỳ gói python nào mà tôi cài đặt, bất kể thư mục tôi tìm thấy, có tự cài đặt vào thư mục site-package của virtualenv thích hợp không?

Tùy chọn 1 là giải nén chương trình python vào / home / username / tmp - sau đó đăng nhập vào virtualenv của tôi, điều hướng đến thư mục đó và chạy chương trình setup.py - giả sử rằng virtualenv sẽ chuyển tất cả các tệp có liên quan vào thư mục gói trang web của riêng nó .

HOẶC kịch bản 2 là giải nén các tệp trực tiếp vào các gói trang web và chạy nó từ đó (sau khi đăng nhập vào virtualenv), v.v.

Cảm ơn bạn đã giúp một ly hợp Python với điều này!

Câu trả lời:


122

Tôi thường giải nén chương trình vào một thư mục tạm thời, sau đó từ thư mục đó, chạy setup.py bằng đường dẫn trực tiếp đến phiên bản python virtualenv. Ví dụ: nếu virtualenv của bạn nằm trong / home / username / virtualpy, hãy sử dụng nó (từ thư mục tạm thời của bạn)

/home/username/virtualpy/bin/python setup.py install

Điều này sẽ cài đặt nó vào thư mục gói trang web virtualenv của bạn.


2
Vì vậy, thực sự hoạt động nhập là chạy python bằng phiên bản python (2.6) được cài đặt trong virtualenv ... tốt đẹp! Cảm ơn Dwelch.
Jamison

Đảm bảo rằng bạn chạy nó từ thư mục tạm thời; setup.py có thể sẽ mong đợi nó là thư mục hiện tại.
Seth

Điều này dường như không còn cần thiết nữa. Sau khi env ảo được kích hoạt, tôi chỉ cần chạy python setup.py installhoặc python setup.py developvà nó cài đặt ở đúng vị trí.
Oliver

12

tốt khi bạn chuyển sang môi trường ảo. bạn nên gõ

which python

và nếu nó trả về đường dẫn nơi môi trường ảo của bạn tồn tại thì bạn có thể trực tiếp chạy lệnh này.

$ python setup.py build
$ python setup.py install

nhưng nếu nó cung cấp đường dẫn cấp độ toàn cầu không phải là virtualenv'sđường dẫn của bạn thì bạn nên thử sử dụng

$ ~/.virtualenv/python-env/bin/python setup.py build
$ ~/.virtualenv/python-env/bin/python setup.py install

0

Nếu một gói không cài đặt từ kho lưu trữ, hãy thử dưới venv bằng cách sử dụng sudo. Ví dụ đối với gói python.

/venv3.6/bin$ sudo pip3 install pathos

0

PACKAGE_DIR = / some / package / directory / path export VENV = $ (pipenv --venv) && export BASE_DIR = $ (pwd) && cd $ PACKAGE_DIR && $ VENV / bin / python setup.py install && cd $ BASE_DIR

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.