Không, đối với một '- có thể liên quan' không cập nhật tập lệnh 'virtualenv/bin/activate'. Có, bạn có thể khắc phục điều đó bằng cách chạy lại thiết lập ảo env như zeekay được đề xuất, tuy nhiên ảnh tĩnh không nhập bất kỳ cài đặt 'pip -e git ...' nào được đặt trong 'virtualenv/src', do đó bạn sẽ phải chạy lại những pip cài đặt bằng tay.
Từ kinh nghiệm bây giờ một ngày tôi không cài đặt với pip có thể chỉnh sửa (-e) và nếu cần sao chép thủ công kho vào 'project/src /' thay vì 'project/virtualenv/src' và có đoạn mã dưới đây auto_prep_pythonpath.py
được tải trước khi khởi chạy dự án của tôi (tôi tham chiếu nó trong kịch bản django.wsgi
của tôi).
Như một lưu ý phụ, tôi nối 'phù hợp' với bất kỳ gói nào được đặt trong 'project/src' được sửa đổi/tấn công nên tôi không phải lo lắng về tính tương thích ngược và theo dõi tất cả các nguồn dưới sự kiểm soát mã kho trực tuyến có thể và sẽ phanh trên bạn.
Hy vọng điều này sẽ hữu ích.
"""
Prepares python path to include additional project/src/<APP> in PYTHONPATH - This file gets automatically loaded by projects __init__.py
This script lives in 'project/src/django-project/auto_prep_pythonpath.py', modify
'SOURCE_ROOT' if you place it somehwere else.
"""
import logging
import os
import sys
SOURCE_ROOT = os.path.dirname(os.path.abspath(__file__)).replace('\\','/') # the replacements are when on windows
SOURCE_ROOT = os.path.join(SOURCE_ROOT, '../').replace('\\','/')
SOURCE_ROOT = os.path.normpath(SOURCE_ROOT)
logger = logging.getLogger(__name__)
logger.info("Adding packages in 'src/*' required by project to PYTHONPATCH.")
dirlist_arr = os.listdir(SOURCE_ROOT)
while dirlist_arr:
item_path = os.path.join(SOURCE_ROOT, dirlist_arr.pop()).replace('\\','/') # replace dashes is for win based file system
if os.path.isdir(item_path):
if not item_path in sys.path:
sys.path.insert(0, item_path) # we use insert to take precedence over any global paths - minimises import conflict suprises
logger.debug("Path '%s' added." % item_path)
Nguồn
2013-04-04 16:55:14
"Cuộc gọi có thể định vị lại trên virtual env" là gì? – hughdbrown
Hãy nhớ chấp nhận câu trả lời cho câu hỏi của bạn. Bạn làm điều này bằng cách nhấp vào dấu kiểm bên cạnh dấu kiểm hữu ích nhất. Xin vui lòng quay trở lại và làm điều đó cho cũ của bạn, câu hỏi trả lời quá. – agf
Tôi không hiểu tại sao bạn muốn di chuyển virtualenv của bạn xung quanh. Tôi chỉ có chúng trong '~/.virtualenvs' và tôi đã làm xong với nó. Không ồn ào, không ồn ào. – hughdbrown