لدي خطوط في ناتج تجميد النقطة مثل:
-e [email protected]:widgets.git@3bdaf7d07c44a87c38beb1e8abd163a7edf99adc#egg=widgets
-e [email protected]:[email protected]#egg=gadgets
عندما يحين وقت التثبيت باستخدام pip install -r requirements.txt
، يبدو أن النقطة تحدد بشكل غير صحيح example.com:[email protected]
أنه عنوان URL الكامل لمستودع git في حين أنه يجب أن يكون فقط example.com:gadgets.git
ومن ثم يجب أن يكون تحقق من 3bda ... 99adc الالتزام.
إذا حاولت التثبيت باستخدام إخراج تجميد النقطة ، على سبيل المثال
pip install -e [email protected]:[email protected]#egg=gadgets
أحصل على نفس الخطأ.
كل هذا باستخدام النقطة 1.5.4
لاحظ أنه مع التغييرات التالية يعمل بشكل صحيح:
pip install -e [email protected]:/path/to/project/[email protected]#egg=project
أو
pip install -e [email protected]:project.git#egg=project
على الرغم من أنه في الأخير ، من الواضح أنه سيسحب الالتزام الحالي فقط وليس الالتزام المحدد في 3bdaf ...
أيضًا ، لأسباب لا أفهمها ، تعمل هذه الطلبات من أجل github.
هذا هو،
pip install -e [email protected]:JordanReiter/[email protected]#egg=github_project
يعمل.
هذا مشابه لـ # 6293. المحلل اللغوي (على أساس stdlib urlsplit
يواجه مشاكل في تحديد جزء المسار من عنوان URL عندما لا يحتوي على /
على الإطلاق ، وتحديد الشيء بأكمله بعد +
كـ netloc
. المتغير بدون سرعة يعمل بالكامل عن طريق الصدفة لأن netloc
و path
تم ضمهما لاحقًا وتمريرهما إلى Git (الذي يقوم بالشيء الصحيح تلقائيًا).
يبدو أن المناقشات في # 6293 تفضل إسقاط دعم عنوان URL على غرار SCP تمامًا ، لذا سيكون الحل الأفضل هنا هو الصدارة pip freeze
لإخراج عناوين URL git+ssh://
بدلاً من ذلك.
يتم الإغلاق كما نقترح إزالة النموذج git+git@
في # 7554.