لم أتمكن من العثور على هذه المشكلة موثقة في أي مكان ، ولكن إذا حددت install-option
في ~/.pip/pip.conf
، فلن يتم تجاوزها بمقدار virtualenv
. أحدد --prefix=/path/to/somwhere
في install-option
بسبب قيود المستخدم على جهاز الكمبيوتر الخاص بالعمل ، ومع تعيينه ، لا تزال أي عمليات تثبيت في venv (مع تمكين $PIP_RESPECT_VIRTUALENV
) مثبتة في المسار المحدد بواسطة install-option
. لم يكن هذا سلوكًا متوقعًا بالنسبة لي ، لكنني لست متأكدًا مما إذا كان تجاهل pip.conf
هو الإجراء الصحيح أيضًا. ربما يكون توثيق مثل هذا السلوك هو الأفضل. شيء غريب آخر هو أنه لا يمكنك بعد ذلك إلغاء التثبيت أثناء وجودك في Virtualenv ، حيث لم يتم تثبيت الحزمة في venv ، ولا يمكن لـ pip العثور عليها.
حدث هذا لي عند استخدام النقطة 1.4.1 و 1.5.6 و virtualenv 1.11.6.
إصلاحي الحالي هو تعيين $PIP_CONFIG_FILE
إلى /dev/null
عبر ربط virtualenvwrapper
's postactivate
وإلغاء ضبطه في postdeactivate
.
هذه القضية لا تزال موجودة. في حالتي ، أرغب في استخدام تثبيتات --user
عندما لا تكون في venv (من خلال تعيين هذا في ~/.config/pip/pip.conf
، لكن التثبيت "العادي" (in-venv) في venv (فعل تثبيتات --user
تبدو منطقية في venv؟).
هناك حلان محتملان (يمكن تنفيذ الحل الأول فقط عن طريق النقطة ، ولكن يمكنني أيضًا بدء المناقشة هنا) هما
~/.config/pip/pip-novenv.conf
أو أيًا كان) ، أو--user
a no-op in a venv (مرة أخرى ، لست متأكدًا من --user
+ venv منطقيًا: لا يوجد سوى ~/.local/lib/pythonX.Y
لذلك يتم كسر كل العزلة هناك).لا تزال المشكلة موجودة في Python 3.5.3.
إنه لأمر مثير للسخرية والإحباط أنه إذا حاول المرء توخي الحذر مع البيئة ، إلى حد استخدام البيئات الافتراضية وتثبيت المستخدم في pip.conf ، ينتهي المرء بنظام لا يعمل.
كنت أحاول تجنب استخدام أعضاء الفريق sudo pip
. إنها تزداد صعوبة.
أليس هذا خطأ في virtualenv
- أنه لا يتم تعيين PIP_CONFIG_FILE=/dev/null
عند استخدام بعض الخيارات؟
أوه ، تعرضت للعض من هذا اليوم.
هل يمكن لأي شخص أن يقدم تعليمات واضحة حول كيفية إعادة إنتاج هذا؟
التعليق الأكثر فائدة
إصلاحي الحالي هو تعيين
$PIP_CONFIG_FILE
إلى/dev/null
عبر ربطvirtualenvwrapper
'spostactivate
وإلغاء ضبطه فيpostdeactivate
.