Bir python projesine tüm bağımlılıkları yüklemek için requirements.txt nasıl kullanılır


86

Python'da yeniyim. Son zamanlarda python ile yazılmış bir proje aldım ve biraz kurulum gerektiriyor. Kurmak için aşağıdaki komutu çalıştırdım ama bir hata aldım.

# pip install requirements.txt 
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt

Google'da aradım ve bu bağlantıyı buldum http://stackoverflow.com/questions/28167987/python-pip-trouble-installing-from-requirements-txtama o gönderideki çözümün ne olduğunu tam olarak anlamadım.

Required.txt dosyam aşağıdadır:

# cat requirements.txt 
ordereddict==1.1
argparse==1.2.1
python-dateutil==2.2
matplotlib==1.3.1
nose==1.3.0
numpy==1.8.0
pymongo==3.3.0
psutil>=2.0

Bu python projesinde gerekli tüm bağımlılıkları kurmanın kolay bir yolu var mı?

DÜZENLE1

Aşağıdaki çıktı pip3 install -r requirements.txt.

# pip3 install -r requirements.txt 
Requirement already satisfied: ordereddict==1.1 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 1))
Collecting argparse==1.2.1 (from -r requirements.txt (line 2))
  Using cached argparse-1.2.1.tar.gz
Collecting python-dateutil==2.2 (from -r requirements.txt (line 3))
  Using cached python-dateutil-2.2.tar.gz
Collecting matplotlib==1.3.1 (from -r requirements.txt (line 4))
  Using cached matplotlib-1.3.1.tar.gz
    Complete output from command python setup.py egg_info:
    ============================================================================
    Edit setup.cfg to change the build options

    BUILDING MATPLOTLIB
                matplotlib: yes [1.3.1]
                    python: yes [3.5.2 (default, Nov 17 2016, 17:05:23)  [GCC
                            5.4.0 20160609]]
                  platform: yes [linux]

    REQUIRED DEPENDENCIES AND EXTENSIONS
                     numpy: yes [version 1.11.3]
                  dateutil: yes [using dateutil version 2.6.0]
                   tornado: yes [tornado was not found. It is required for the
                            WebAgg backend. pip/easy_install may attempt to
                            install it after matplotlib.]
                 pyparsing: yes [using pyparsing version 2.1.10]
                     pycxx: yes [Official versions of PyCXX are not compatible
                            with Python 3.x.  Using local copy]
                    libagg: yes [pkg-config information for 'libagg' could not
                            be found. Using local copy.]
                  freetype: no  [The C/C++ header for freetype2 (ft2build.h)
                            could not be found.  You may need to install the
                            development package.]
                       png: yes [pkg-config information for 'libpng' could not
                            be found. Using unknown version.]

    OPTIONAL SUBPACKAGES
               sample_data: yes [installing]
                  toolkits: yes [installing]
                     tests: yes [using nose version 1.3.7]

    OPTIONAL BACKEND EXTENSIONS
                    macosx: no  [Mac OS-X only]
                    qt4agg: no  [PyQt4 not found]
                   gtk3agg: no  [gtk3agg backend does not work on Python 3]
                 gtk3cairo: no  [Requires cairo to be installed.]
                    gtkagg: no  [Requires pygtk]
                     tkagg: no  [TKAgg requires Tkinter.]
                     wxagg: no  [requires wxPython]
                       gtk: no  [Requires pygtk]
                       agg: yes [installing]
                     cairo: no  [cairo not found]
                 windowing: no  [Microsoft Windows only]

    OPTIONAL LATEX DEPENDENCIES
                    dvipng: no
               ghostscript: no
                     latex: no
                   pdftops: no

    ============================================================================
                            * The following required packages can not be built:
                            * freetype

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-don4ne_2/matplotlib/

Zaten yükledim libfreetype6-devancak pip komutu hala bu bağımlılığın eksik olduğunu bildiriyor.

# apt-get install libfreetype6-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libfreetype6-dev is already the newest version (2.6.1-0.1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

25
pip install -r requirements.txt
MrLeeh

1
Çıktıyı -r işaretiyle çıktıyı içerecek şekilde güncelledim, ancak yine de yükleyemiyorum.
Joey Yi Zhao

şimdi yeni çıktıları okuyun ve düşünün - bizi beklemeyin.
furas

çıktıda ihtiyacı olduğunu görüyorsunuz freetype. Python modülü değil, sistem paketidir. İe kullanarak yüklemelisiniz. apt-getonUbuntu/Mint
furas

Neden -rbununla hiçbir ilgisi olmadığı için file??
Sören

Yanıtlar:


65

Linux işletim sistemi kullanıyorsanız:

  1. Kaldır matplotlib==1.3.1danrequirements.txt
  2. İle yüklemeyi deneyin sudo apt-get install python-matplotlib
  3. Çalıştır pip install -r requirements.txt(Python 2) veya pip3 install -r requirements.txt(Python 3)
  4. pip freeze > requirements.txt

Windows işletim sistemi kullanıyorsanız:

  1. python -m pip install -U pip setuptools
  2. python -m pip install matplotlib

9
Merhaba Nilesh, Stack Overflow'a hoş geldiniz. Gelecekte, lütfen cevabınıza verdiğiniz komutların ne işe yaradığının açıklamasını ekleyin, insanlara sadece komut çalıştırmalarını söylemeyin.
yakatz

Teşekkürler @Nilesh. 3'ün önüne 4. koymak mı demek istediniz?
Anupam

Hayır @Anupam, 1. adımda olduğu gibi, "matplotlib" i gereksinimler.txt'den kaldırdık, 4. adımda, daha sonra kullanmak üzere gereksinimler.txt dosyasını yeni yüklenen bir paketle güncelliyoruz. step3, dosyadan diğer gereksinimleri yüklemek içindir.
Nilesh Pansuriya

40

pip install -r requirements.txt için python 2.x

pip3 install -r requirements.txtiçin python 3.x(birden fazla sürümün kurulu olması durumunda)


İkisini de denedim ama yine de başarısız oldum. Bu komutun çıktısını gönderdim.
Joey Yi Zhao

1
MATPLOTLIB'i yüklemek için gerekli bir bağımlılık 'freetype' eksik olduğunu düşünüyorum. Bağımlılığı yüklemeyi ve pip install -r requirements.txt dosyasını yeniden çalıştırmayı deneyin.
Joshi Sravan Kumar

pipsistem düzeyi bağımlılıkları işlemez. apt-get install libfreetype6-devDevam etmeden önce yapmanız gerekecek . (Çıktınızda çok doğru olduğunu söylüyor. Bir dahaki sefere bu tür hatalar için gözden geçirmeyi deneyin, genellikle derleme çıktıları çok ayrıntılıdır)
FMaz


3

(Yorumumdan alınmıştır)

pipsistem düzeyi bağımlılıkları işlemez. apt-get install libfreetype6-devDevam etmeden önce yapmanız gerekecek . (Çıktınızda çok doğru olduğunu söylüyor. Bir dahaki sefere bu tür hatalar için gözden geçirmeyi deneyin, genellikle derleme çıktıları çok ayrıntılıdır)


Libfreetype6-dev'i zaten kurdum. Ancak pip yine de bu hatayı bildiriyor.
Joey Yi Zhao


3

Python 3:

pip3 install -r requirements.txt

Python 2:

pip install -r requirements.txt

Sanal ortam veya tüm sistem için tüm bağımlılıkları almak için:

pip freeze

Tüm bağımlılıkları gereksinimleri.txt'ye (Linux) göndermek için:

pip freeze > requirements.txt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.