いいえ、 '--relocatable'は 'virtualenv/bin/activate'スクリプトを更新しません。はい、それはzeekayが提案したようにvirtual env setupを再実行することで修正できますが、stillsは 'virtualenv/src'に配置されている 'pip -e git ...'インストールをインポートできないため、再実行する必要がありますこれらのピップは手動でインストールされます。
経験から、私はpip editable(-e)でインストールしないで、必要に応じて 'project/virtualenv/src'とは対照的に手動でリポジトリを 'project/src /'にクローンして、auto_prep_pythonpath.py
スクリプト(私はdjango.wsgi
スクリプトで参照してください)私のプロジェクトを起動する前にロードされます。
私は 'project/src'に配置されたパッケージに変更/ハッキングされたパッケージに 'tailored'を追加します。このように、私は下位互換性について心配する必要はなく、オンラインリポジトリはあなたにブレーキをかけることができます。
これが役に立ちます。
"""
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)
"仮想envのリロケータブルコール"とは何ですか? – hughdbrown
あなたの質問に対する回答を受け入れることを覚えておいてください。これは、最も有益なチェックマークの横にあるチェックマークをクリックして行います。戻って、あなたの古い質問にも答えてください。 – agf
なぜあなたはあなたのvirtualenvsを移動したいのか分かりません。私は '〜/ .virtualenvs'でそれらを持っています。マッスルではない。 – hughdbrown