Tôi phải chỉnh sửa tệp nào và làm thế nào? Tôi đã tạo ra một môi trường ảo.
virtualenvwrapper
lệnh. Nó không phải là một phần của virtualenv
.
Tôi phải chỉnh sửa tệp nào và làm thế nào? Tôi đã tạo ra một môi trường ảo.
virtualenvwrapper
lệnh. Nó không phải là một phần của virtualenv
.
Câu trả lời:
CHỈNH SỬA # 2
Câu trả lời đúng là của @ arogachev .
Nếu bạn muốn thay đổi dòng PYTHONPATH
được sử dụng trong virtualenv, bạn có thể thêm dòng sau vào bin/activate
tệp virtualenv của mình :
export PYTHONPATH="/the/path/you/want"
Bằng cách này, cái mới PYTHONPATH
sẽ được thiết lập mỗi khi bạn sử dụng virtualenv này.
CHỈNH SỬA: (để trả lời bình luận của @ RamRachum)
Để khôi phục lại giá trị ban đầu deactivate
, bạn có thể thêm
export OLD_PYTHONPATH="$PYTHONPATH"
trước dòng đã đề cập trước đó và thêm dòng sau vào bin/postdeactivate
tập lệnh của bạn .
export PYTHONPATH="$OLD_PYTHONPATH"
deactivate
?
PYTHONPATH
(toàn cầu) thay vì đường dẫn cục bộ virtualenv?
Nhận xét của @ s29 phải là một câu trả lời:
Một cách để thêm thư mục vào môi trường ảo là cài đặt virtualenvwrapper (rất hữu ích cho nhiều thứ) và sau đó thực hiện
mkvirtualenv myenv
workon myenv
add2virtualenv . #for current directory
add2virtualenv ~/my/path
Nếu bạn muốn xóa các đường dẫn này, hãy chỉnh sửa tệp myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth
Có thể tìm thấy tài liệu về virtualenvwrapper tại http://virtualenvwrapper.readthedocs.org/en/latest/
Tài liệu cụ thể về tính năng này có thể được tìm thấy tại http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv
add2virtualenv -d
Bạn có thể tạo một .pth
tệp chứa thư mục để tìm kiếm và đặt nó vào site-packages
thư mục. Ví dụ:
cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
echo /some/library/path > some-library.pth
Hiệu ứng giống như việc thêm /some/library/path
vào sys.path
và giữ nguyên cục bộ cho virtualenv
thiết lập.
$VIRTUALENV_ROOT/lib/pythonX.Y/site-packages
. Tài liệu trên tệp .pth: docs.python.org/3.6/library/site.html
pushd "$(venv/bin/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")" ...path/to/project/venv/lib/python3.7/site-packages ...path/to/project echo ../../../../src > my_project.pth popd
Sau đó, tôi hủy kích hoạt virtualenv của mình và kích hoạt lại. Bây giờ tôi có thể chạy mã dự án yêu cầu biết thư mục dự án của tôi ở đâu.
/bin/activate
) là một sơ suất và việc cài đặt các công cụ của bên thứ 3 kém hơn so với việc sử dụng cách tích hợp sẵn để đạt được điều tương tự.
cd venv
source bin/activate
export PYTHONPATH='/home/django/srmvenv/lib/python3.4'
python
\>\> import sys
\>\> sys.path
Tôi đã sửa đổi tập lệnh kích hoạt của mình để tạo nguồn cho tệp .virtualenvrc
, nếu nó tồn tại trong thư mục hiện tại và để lưu / khôi phục PYTHONPATH
khi kích hoạt / hủy kích hoạt.
Bạn có thể tìm thấy activate
tập lệnh được vá ở đây. . Nó thay thế cho tập lệnh kích hoạt được tạo bởi virtualenv 1.11.6.
Sau đó, tôi đã thêm một cái gì đó như thế này vào .virtualenvrc
:
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}/some/library/path"
Nó đã được trả lời ở đây -> Môi trường ảo (python) của tôi có khiến PYTHONPATH của tôi bị hỏng không?
Thêm "export PYTHONPATH = / usr / local / lib / python2.0" vào tệp ~ / .bashrc và tạo nguồn bằng cách nhập "source ~ / .bashrc" OR ". ~ / .Bashrc".
1) Đi tới Bảng điều khiển 2) Nhấp đúp vào Hệ thống 3) Chuyển đến tab Nâng cao 4) Nhấp vào Biến môi trường
Trong cửa sổ Biến hệ thống, hãy kiểm tra xem bạn có biến có tên PYTHONPATH hay không. Nếu bạn đã có, hãy kiểm tra xem nó có trỏ đến đúng các thư mục hay không. Nếu bạn chưa có, hãy nhấp vào nút Mới và tạo nó.
Ngoài ra, bạn cũng có thể thực hiện bên dưới mã của mình: -
import sys
sys.path.append("/home/me/mypy")