python - pypi




كيفية تثبيت حزم التثبيت وفقًا لـ requirements.txt من دليل محلي؟ (6)

ها هي المشكلة

لديّ ملف requirements.txt يبدو كالتالي:

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

لدي دليل أرشيف محلي يحتوي على جميع الحزم + الآخرين.

لقد خلقت virtualenv جديدة مع

bin/virtualenv testing

عند تنشيطه ، حاولت تثبيت الحزم وفقًا لـ requirements.txt من دليل الأرشيف المحلي.

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

حصلت على بعض الإخراج الذي يشير إلى أن التثبيت على ما يرام

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

لكن كشف في وقت لاحق كشفت أي شيء من حزمة مثبت بشكل صحيح. لا يمكنني استيراد الحزمة ، ولم يتم العثور على أي منها في دليل حزم المواقع الخاص بي virtualenv. إذن ما الخطأ الذي حدث؟


أعمل مع الكثير من الأنظمة التي تم تطويعها من قِبل المطورين "باتباع التوجيهات التي وجدوها على الإنترنت". ومن الشائع للغاية أن pip الخاصة بك python الخاص بك لا تبحث في نفس المسارات / الموقع الحزم. لهذا السبب ، عندما أواجه الغرابة أبدأ بذلك:

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

هذا هو نظام سعيد .

أدناه هو نظام غير سعيد . (أو على الأقل هو نظام جاهل هزلي يجعل الآخرين غير سعداء.)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

إنه غير سعيد لأن pip هي (python3.6 و) باستخدام /usr/local/lib/python3.6/site-packages بينما python (python2.7 و) باستخدام /usr/local/lib/python2.7/site-packages

عندما أريد التأكد من أنني أقوم بتثبيت المتطلبات على الثعبان الصحيح ، أفعل هذا:

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt

لقد سمعت ، "إذا لم ينكسر ، فلا تحاول إصلاحه." نسخة DevOps من ذلك ، "إذا لم تكسرها ويمكنك العمل حولها ، فلا تحاول إصلاحها."


بالنسبة لـ virtualenv لتثبيت جميع الملفات في ملف requirements.txt.

  1. القرص المضغوط إلى الدليل حيث يوجد requirements.txt
  2. تفعيل حسابك الافتراضي
  3. تشغيل: pip install -r requirements.txt في shell الخاص بك

كان لدي مشكلة مماثلة. جربت هذا:

pip install -U -r requirements.txt 

(-U = تحديث إذا كان قد تم تثبيته بالفعل)

لكن استمرت المشكلة. أدركت أن بعض المكتبات العامة للتنمية قد فاتتها.

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

لا أعلم ما إذا كان هذا سيساعدك.


لقد قرأت ما ورد أعلاه ، أدرك أن هذا سؤال قديم ، لكنه لم يتم حله تمامًا ولا يزال في أعلى نتائج بحث google ، لذا إليك إجابة تعمل للجميع:

pip install -r /path/to/requirements.txt

تثبيت VIRTUAL ENV مع PYTHON3:

كان لي نفس القضية. أي من الحلول المذكورة أعلاه عملت بالنسبة لي. لقد وجدت الحل.

في البداية ، قمت بإنشاء env الظاهري الخاص بي بهذه الطريقة:

sudo apt-get install python3-pip
sudo pip3 install virtualenv 
virtualenv myenv 

لم تنجح. تمكّنت من تثبيت requirements.txt ولكن لا يمكن استيراد الوحدات النمطية. لذلك حاولت

virtualenv -p python3 myenv

تفعيل البيئة باستخدام:

source myenv/bin/activate

الآن قمت بتثبيت requirements.txt باستخدام:

pip3 install -r requirements.txt

نجح التثبيت وتمكنت من استيراد الوحدات.


pip install -r requirements.txt

لمزيد من التفاصيل ، يرجى التحقق من خيار المساعدة.

pip install --help

يمكننا العثور على الخيار "-r"

-r، --requirement التثبيت من ملف المتطلبات المعينة. يمكن استخدام هذا الخيار عدة مرات.

مزيد من المعلومات حول بعض خيارات تثبيت النقاط الشائعة الاستخدام: (هذا هو خيار المساعدة على أمر تثبيت نقطة)

أيضا ما سبق هو مجموعة كاملة من الخيارات. الرجاء استخدام تثبيت pip --help للحصول على قائمة كاملة من الخيارات.





pip