දේශීය නාමාවලියකින් අවශ්‍යතා. Txt ගොනුව අනුව පයිප්ප භාවිතයෙන් පැකේජ ස්ථාපනය කරන්නේ කෙසේද?


1114

මෙන්න ගැටලුව

මට අවශ්‍යතාවයන් ඇත.

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

එය සක්‍රිය කිරීමෙන් පසු, දේශීය සංරක්ෂිත නාමාවලියෙන් අවශ්‍යතාවයන් අනුව පැකේජ ස්ථාපනය කිරීමට මම උත්සාහ කළෙමි.

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 හි අඩවි පැකේජ නාමාවලියෙහි කිසිවක් සොයාගත නොහැක. ඉතින් මොකක්ද වැරැද්ද?


5
--no-indexPyPI දෙස නොබලන ලෙස ඔබ භාවිතා කිරීමට උත්සාහ කර තිබේද?
හියුගෝ තවරෙස්

2
ඔබ දෝෂ පණිවිඩය කපා ඇත. එය සාමාන්‍යයෙන් පතුලේ ය.
bukzor

ඔබට පැකේජ නාම වෙනුවට ගොනු මාර්ග භාවිතා කළ හැකිය, එයින් අදහස් කරන්නේ ඔබට අවශ්‍යතා. Txt ගොනුව වෙනස් කළ යුතු බවයි, නමුත් පයිප්ප ස්ථාපනය කිරීමේ විධානය එලෙසම තබා ගන්න.
asafge

10
වඩාත්ම ඡන්දය දුන් පිළිතුර (මයික් ලියොන්ස්ගේ පිළිතුර) ප්‍රශ්නයට පවා පිළිතුරු සපයන්නේ නැත . කරුණාකර ඔබට නිවැරදි පිළිතුර වන කේතයේ පිළිතුර පිළිගත හැකිද?
පියොටර් ඩොබ්‍රොගොස්ට්

2
පුදුමයට පත් වෙනත් කිසිවෙකු සම්බන්ධ නොවූ නමුත් pip.pypa.io/en/stable/user_guide/#requirements-files
MrMesees

Answers:


815

මෙය මට වැඩ කරයි:

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index- ඇසුරුම් දර්ශකය නොසලකා හරින්න ( --find-linksඒ වෙනුවට URL දෙස බැලීම පමණි ).

-f, --find-links <URL>- URL එකක් හෝ html ගොනුවකට මාර්ගයක් නම්, ලේඛනාගාරයට සබැඳි විග්‍රහ කරන්න. file://නාමාවලියක් වන දේශීය මාර්ගයක් හෝ URL එකක් නම්, නාමාවලි ලැයිස්තුවේ ලේඛනාගාරය සොයා බලන්න.


7
පිළිබඳ තොරතුරු --no-indexවිධානය එක පිප්ස් එකකට උදව් ස්ථාපනය සිට --no-index ඇසුරුම් දර්ශකය නොසලකා ( --find-linksඒ වෙනුවට URL දෙස බැලීම පමණි ). පිළිබඳ තොරතුරු --find-linksවිධානය එක පිප්ස් එකකට උදව් ස්ථාපනය -f , --find-links <url>ක html ගොනු කිරීමට url එක හෝ මාර්ගය නම්, ලේඛනාගාරය සබැඳි විග්රහ කළ. දේශීය මාර්ගයක් හෝ ගොනුවක්: // url එය නාමාවලියක් නම්, නාමාවලි ලැයිස්තුවේ ලේඛනාගාරය සොයා බලන්න.
AWrightIV

1
//, මෙය ඉතා අලංකාර විසඳුමක් විය හැකිය, විශේෂයෙන් විකුණුම්කරණය සමඟ සදාකාලික අරගලය සැලකිල්ලට ගෙන: bitprophet.org/blog/2012/06/07/on-vendorizing
නේතන් බසානිස්

මේ සමඟ ඇති එක් අවවාදයක් නම් ඔබ pip install <some_module>භාවිතා නොකර සිටිය හැකි requirements.txtනමුත් එය යාවත්කාලීන නොවනු ඇතrequirements.txt . විකල්පයක් වන්නේ ඩොකර් යාවත්කාලීන කිරීම විය හැකි අතර එය පරායත්තයන් ස්ථාපනය කිරීම සඳහා ක්‍රියාත්මක වන සියලුම නල ස්ථාපනය විධාන ලැයිස්තුගත කරයි.
ampersands

python -m pip install -r requirements.txtසක්‍රිය venv enviroment තුළ සිටින විට මම මෙය උත්සාහ කළෙමි. දේවල් සුමටව ස්ථාපනය කර ඇති නමුත් මම පයිප්ප ලැයිස්තුවක් කරන විට එම පැකේජ නොපෙන්වයි, මම සක්‍රීය venv හි සිටින විට හෝ venv අක්‍රිය කිරීමෙන් පසුවද. එම පැකේජ භාවිතා කිරීමට ද නොහැකි ය. මෙහි වැරැද්ද කුමක්දැයි නොදනී
ශ්‍රියාන් මේතා

ඔබට විශ්වාසද pythonසක්‍රිය පරිසරයේ පයිතන් ක්‍රියාත්මක කළ හැකි ( $ which python) ?
codeape

1389

මම ඉහත කියවා ඇත්තෙමි, මෙය පැරණි ප්‍රශ්නයක් බව වටහා ගන්න, නමුත් එය මුළුමනින්ම නොවිසඳී ඇති අතර තවමත් මගේ ගූගල් සෙවුම් ප්‍රති results ලවල ඉහළින්ම සිටී, එබැවින් සෑම කෙනෙකුටම ක්‍රියාත්මක වන පිළිතුරක් මෙන්න:

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

290
මෙම පිළිතුර මුල් ප්‍රශ්නයට ආමන්ත්‍රණය නොකරන බව මට වැටහී ඇත, නමුත් ගූගල් හි මෙය සොයාගත් විට මා ඇසූ ප්‍රශ්නයට එය පිළිතුරු සපයයි ...
ජොනතන්

8
Ike මයික්ලියොන්ස් විශ්වාස කරන්නේ ප්‍රශ්නය ඇත්ත වශයෙන්ම වෙනස් වී නැති බවයි - සංස්කරණ ඉතිහාසයක් නොමැත.
මාර්ක් අමරි

50
ඔවුන් ටයිප් කරන්නේ කුමක්දැයි දැන ගැනීමට කැමති අය සඳහා, -r විධානයෙහි තේරුම “අවශ්‍යතා ගොනුවකින් ස්ථාපනය කරන්න” යන්නයි. එය --requirement සඳහා වන කෙටිමඟකි
ෆ්ලොරන්ට් චැටර්ජි

3
මට පැකේජයක් උත්ශ්‍රේණි කිරීමට අවශ්‍ය වූ විට (උදා: ජැන්ගෝ), මම මගේ අවශ්‍යතා. Txt ගොනුවේ අනුවාදය වෙනස් කර ධාවනය කරමි pip install -r /path/to/requirements.txt. මෙය වෙනස හඳුනා ගනී, පැකේජය යාවත්කාලීන කරයි, සහ අනෙක් සියල්ල තනි කරයි.
පරිශීලක

1
මෙය සාමාන්‍යයෙන් ක්‍රියාත්මක වන අතර, සියුම් යුවළක් එය අසාර්ථක කරයි. ඇසුරුම් සඳහා කිසියම් ස්ථාපනය අසමත් වුවහොත් requirements.txt, ඒවා කිසිවක් ස්ථාපනය නොවේ. අවශ්‍ය මොඩියුලය එහි ස්ථාපනය අතරතුරදී පරායත්තතාවයක් ආනයනය කරන්නේ නම් (එය අවශ්‍යතාවයක් ලෙස ලැයිස්තුගත කිරීම වෙනුවට), පරායත්තතා ලැයිස්තුවේ පරායත්තතාවයට පෙරාතුව වුවද එය අසාර්ථක වන අතර එමඟින් සියලු මොඩියුලයන් අසාර්ථක වේ. ස්ථාපනය අතරතුර යැපෙන මොඩියුලයක් ආනයනය කිරීම බොහෝ විට දෝෂයකි, නමුත් ලැයිස්තුගත කර ඇති පරායත්තයන් requirements.txtඅනුපිළිවෙලින් ස්ථාපනය නොකිරීම අනපේක්ෂිත ය , නමුත් සියල්ල එකවර.
iggie

137

Virtualenv සඳහා අවශ්‍යතා. Txt ගොනුවේ සියලුම ගොනු ස්ථාපනය කිරීමට.

  1. cd අවශ්‍යතා. txt පිහිටා ඇති නාමාවලියට
  2. ඔබේ virtualenv සක්‍රිය කරන්න
  3. ධාවනය: pip install -r requirements.txt ඔබේ කවචයේ

3
ගූගල් වෙනුවෙන් "pyenv virtualenv නල ස්ථාපනය අවශ්‍යතා. txt ක්‍රියා නොකරයි" ...
ජෙරඩ්

pip3 install -r needs.txt
රෝහිත් සිං

62

මටත් ඒ හා සමාන ගැටලුවක් තිබුණා. මම මෙය උත්සාහ කළෙමි:

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

මෙය ඔබට උපකාරී වේදැයි මම නොදනිමි.


32
pip install -r requirements.txt

වැඩි විස්තර සඳහා කරුණාකර උදව් විකල්පය පරීක්ෂා කරන්න.

pip install --help

අපට '-r' විකල්පය සොයාගත හැකිය

-r, --requirement ලබා දී ඇති අවශ්‍යතා ගොනුවෙන් ස්ථාපනය කරන්න. මෙම විකල්පය කිහිප වතාවක් භාවිතා කළ හැකිය.

බහුලව භාවිතා වන නල ස්ථාපනය කිරීමේ විකල්පයන් පිළිබඳ වැඩිදුර තොරතුරු: (මෙය පයිප්ප ස්ථාපනය කිරීමේ විධානය පිළිබඳ උපකාරක විකල්පයයි)

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඉහත දැක්වෙන්නේ සම්පූර්ණ විකල්ප සමූහයකි. සම්පූර්ණ විකල්ප ලැයිස්තුව සඳහා කරුණාකර නල ස්ථාපනය --help භාවිතා කරන්න.


26

කෙටි පිළිතුර

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

හෝ වෙනත් ආකාරයකින්:

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

පැහැදිලි කිරීම

මෙන්න, -rකෙටි ස්වරූපයක් වන --requirementඅතර එය pipලබා දී ඇති සිට ස්ථාපනය කිරීමට ඉල්ලා සිටීrequirements ගොනුවෙන් .

pipස්ථාපනය ආරම්භ කරනුයේ requirementsගොනුවේ ලැයිස්තුගත කර ඇති සියලුම අයිතම තිබේදැයි පරීක්ෂා කිරීමෙන් පසුව වන අතර එය එකක් requirementනොමැති වුවද එය ස්ථාපනය ආරම්භ නොකරයි .

පවතින පැකේජ ස්ථාපනය කිරීම සඳහා එක් විසඳුමක් නම් ලැයිස්තුගත පැකේජ එකින් එක ස්ථාපනය කිරීමයි. ඒ සඳහා පහත විධානය භාවිතා කරන්න. ලබා ගත නොහැකි පැකේජ පිළිබඳව ඔබට දැනුම් දීමට රතු වර්ණ අනතුරු ඇඟවීමක් පෙන්වනු ඇත.

cat requirements.txt | xargs -n 1 pip install

අදහස් (අ වලින් ආරම්භ වන රේඛා #) සහ හිස් රේඛා නොසලකා හැරීමට , භාවිතා කරන්න:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install

21

බොහෝ විට, ඔබට PyPI පරීක්‍ෂා නොකර දේශීය ලේඛනාගාරයෙන් වේගයෙන් ස්ථාපනය කිරීමට අවශ්‍ය වනු ඇත.

පළමුව, ඔබගේ අවශ්‍යතා සපුරාලන ලේඛනාගාරය බාගන්න:

$ pip install --download <DIR> -r requirements.txt

ඉන්පසු, –find-linksසහ ස්ථාපනය කර ස්ථාපනය කරන්න –no-index:

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt

no such option: --download
මැක්ස් මාලිෂ්

13

සංවර්ධකයින් විසින් "අන්තර්ජාලයේ ඔවුන් සොයාගත් උපදෙස් අනුගමනය කරමින්" ඔවුන් සමඟ සම්බන්ධ වී ඇති බොහෝ පද්ධති සමඟ මම වැඩ කරමි. ඔබ 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 අනුවාදය නම්, "ඔබ එය බිඳ දැමුවේ නැතිනම් ඔබට එය වටා වැඩ කළ හැකි නම්, එය නිවැරදි කිරීමට උත්සාහ නොකරන්න."


10

පළමුව, අථත්ය පරිසරයක් නිර්මාණය කරන්න

පයිතන් 3.6 හි

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

පයිතන් 2.7 හි

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

ඉන්පසු පරිසරය සක්‍රිය කර අවශ්‍ය පැකේජ අවශ්‍යතා. txt ගොනුවේ ස්ථාපනය කරන්න.

source <path/to/new/virtualenv>/bin/activate
pip install -r <path/to/requirement.txt>

9

පයිතන් 3 සමඟ අතථ්‍ය env තුළ අවශ්‍යතා. Txt ගොනුව ස්ථාපනය කිරීම:

මටත් ඒ ප්‍රශ්නයම තිබුණා. මම අථත්ය පරිසරයක් තුළ අවශ්‍යතා. Txt ගොනුව ස්ථාපනය කිරීමට උත්සාහ කළෙමි. මම විසඳුම සොයා ගත්තා.

මුලදී, මම මේ ආකාරයෙන් මගේ අථත්ය env නිර්මාණය කළෙමි:

virtualenv -p python3 myenv

භාවිතයෙන් පරිසරය සක්‍රිය කරන්න:

source myenv/bin/activate

දැන් මම අවශ්‍යතාවයන් ස්ථාපනය කර ඇත.

pip3 install -r requirements.txt

ස්ථාපනය සාර්ථක වූ අතර මොඩියුල ආනයනය කිරීමට මට හැකි විය.


අතථ්‍ය පරිසරයක් තුළ අවශ්‍යතා ගොනුව ස්ථාපනය කරන අතරතුර මම මෙම ගැටලුවට මුහුණ දුන්නා. ගැටලුව විසඳීම සඳහා මම දැන් මගේ ප්‍රතිචාරය වෙනස් කර ඇත
janu777

1
Windows මත ඇනකොන්ඩා Python 3.6 භාවිතා කරමින්, මම කරන දේවල් වලට virtualenv -p python myenv, myenv\Scripts\activate.bat,pip install -r requirements.txt
bdforbes

1
ඇත්තටම, ඒ වෙනුවට, මේ එකම පිළිතුර වගේ කරන්නේ මෙරට තුළ අර්ථ deps ස්ථාපනය ගැන ප්රශ්නය පැත්තෙන් පිළිතුරු requirements.txtවූ virtualenv කිරීමට. මට යමක් මග හැරී නැත්නම්? කෙසේ වෙතත්, ස්තූතියි!
davnicwil

8

මේක උත්සාහ කරන්න

python -m pip install -r requirements.txt

8
pip install --user -r requirements.txt 

හෝ

pip3 install --user -r requirements.txt 

ගොනුව --userඇතුළත සඳහන් කළ requirements.txtහැකිද?
liang
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.