Cách sử dụng tệp tests.txt để cài đặt tất cả các phụ thuộc trong một dự án python


83

Tôi mới làm quen với python. Gần đây tôi có một dự án được viết bằng python và nó yêu cầu một số cài đặt. Tôi chạy lệnh dưới đây để cài đặt nhưng gặp lỗi.

# 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

Tôi đã tìm kiếm trên google và tìm thấy liên kết này http://stackoverflow.com/questions/28167987/python-pip-trouble-installing-from-requirements-txtnhưng tôi không hoàn toàn hiểu giải pháp trong bài đăng đó.

Dưới đây là tệp tin request.txt của tôi:

# 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

Có cách nào dễ dàng để cài đặt tất cả các phụ thuộc bắt buộc trong dự án python này không?

EDIT1

Dưới đây là kết quả từ 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/

Tôi đã cài đặt rồi libfreetype6-devnhưng lệnh pip vẫn báo thiếu phần phụ thuộc này.

# 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.

23
pip install -r requirements.txt
MrLeeh

1
Tôi đã cập nhật đầu ra để bao gồm đầu ra với cờ -r nhưng vẫn không thể cài đặt.
Joey Yi Zhao

vì vậy bây giờ hãy đọc đầu ra mới và suy nghĩ - đừng đợi chúng tôi.
furas

trong đầu ra bạn thấy rằng nó cần freetype. Nó không phải là mô-đun python mà là gói hệ thống. Bạn phải cài đặt nó bằng tức là. apt-getonUbuntu/Mint
furas

Tại sao -rvì nó không liên quan gì file??
Sören

Câu trả lời:


61

Nếu bạn đang sử dụng hệ điều hành Linux:

  1. Xóa matplotlib==1.3.1khỏirequirements.txt
  2. Cố gắng cài đặt với sudo apt-get install python-matplotlib
  3. Chạy pip install -r requirements.txt(Python 2) hoặc pip3 install -r requirements.txt(Python 3)
  4. pip freeze > requirements.txt

Nếu bạn đang sử dụng hệ điều hành Windows:

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

9
Xin chào Nilesh, chào mừng bạn đến với Stack Overflow. Trong tương lai, vui lòng bao gồm giải thích các lệnh bạn đưa ra trong câu trả lời của mình có tác dụng gì, đừng chỉ bảo mọi người chạy lệnh.
yakatz

Cảm ơn @Nilesh. Ý bạn là đặt 4. trước 3.?
Anupam

Không có @Anupam, Như trong bước 1, chúng tôi đã xóa "matplotlib" khỏi request.txt, trong bước 4, chúng tôi sẽ cập nhật tệp tin request.txt với một gói mới được cài đặt để sử dụng trong tương lai. step3 là để cài đặt các yêu cầu khác từ tệp.
Nilesh Pansuriya

40

pip install -r requirements.txt cho python 2.x

pip3 install -r requirements.txtcho python 3.x(trong trường hợp nhiều phiên bản được cài đặt)


Tôi đã thử cả hai nhưng vẫn không thành công. Tôi đã đăng kết quả từ lệnh này.
Joey Yi Zhao

1
Tôi nghĩ rằng thiếu "freetype" phụ thuộc bắt buộc để cài đặt MATPLOTLIB. Hãy thử cài đặt phụ thuộc và chạy lại tệp pip install -r request.txt.
Joshi Sravan Kumar

pipsẽ không xử lý các phụ thuộc cấp hệ thống. Bạn sẽ phải làm apt-get install libfreetype6-devtrước khi tiếp tục. (. Nó thậm chí nói như vậy ngay trong đầu ra của bạn Hãy thử lướt qua nó có lỗi gì đó thời gian tiếp theo, thường xây dựng đầu ra rất chi tiết)
FMaz


3

(Lấy từ bình luận của tôi)

pipsẽ không xử lý các phụ thuộc cấp hệ thống. Bạn sẽ phải làm apt-get install libfreetype6-devtrước khi tiếp tục. (Nó thậm chí còn nói như vậy ngay trong đầu ra của bạn. Hãy thử đọc lướt qua nó để biết những lỗi như vậy vào lần sau, thông thường đầu ra xây dựng rất chi tiết)


Tôi đã cài đặt libfreetype6-dev. Nhưng pip vẫn báo lỗi này.
Joey Yi Zhao

Bạn có thấy lỗi này không? github.com/matplotlib/matplotlib/issues/3029
FMaz

3

Python 3:

pip3 install -r requirements.txt

Python 2:

pip install -r requirements.txt

Để nhận tất cả các phụ thuộc cho môi trường ảo hoặc cho toàn bộ hệ thống:

pip freeze

Để đẩy tất cả các thành phần phụ thuộc vào tệp tests.txt (Linux):

pip freeze > requirements.txt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.