1. ホーム
  2. python

Pythonでrequirements.txtのすべてを解説する

2022-02-11 16:30:22

最近インストールしたpythonはすでにインストールされており、cmdターミナルでpythonやpipなどのコマンドが便利です

(インストールするには python-3.6.5-amd.exe リンクから行うことができます。 https://pan.baidu.com/s/1Fr9kZBXuob0hPNLd9EH8UQ パスワード <スパン fi1g )

しかし、requirements.txtファイルを設定する過程で、 "pip install -r requirement.txt" と記述すると、エラー "が発生します。 要件ファイルを開くことができませんでした。[Errno 2] そのようなファイルまたはディレクトリはありません: 'requirements.txt '"を実行する前に、requirements.txtファイルを作成する必要があるため、先に "pip freeze > requirements.txt" を実行してから、 "pip install -r requirements.txt" を実行してrequirements.txtを構成することが原因であることが判明しました。

requirements.txtの詳細については、以下のとおりです。

はじめに

Python のプロジェクトでは、新しい環境にデプロイするために、依存するすべてのパッケージとその正確なバージョン番号を記録する requirements.txt ファイルを含める必要があります。

主な書き出しはこんな感じです。

pip freeze > requirements.txt # Generate requirements.txt
pip install -r requirements.txt # install dependencies from requirements.txt

対応書き込み

-r base.txt # All packages under base.txt
pypinyin==0.12.0 # Specify the version (the most everyday way to write it)
django-querycount>=0.5.0 # greater than a certain version
django-debug-toolbar>=1.3.1,<=1.3.3 # Version range
ipython # default (exists without replacement, does not exist to install latest version)

サードパーティツールの生成

pip freeze には、不要なパッケージやパッケージの依存関係が含まれます ~。

ピプレックス  プロジェクトで参照されるパッケージを自動的に解析します。Django プロジェクトの自動ビルドでは、Mysql パッケージを無視してバージョンがおかしくなり、ネットワーク検索では、404 に遭遇するとエラーバウンスが報告されました。

ピガー  機能は上記の通りですが、パッケージがプロジェクトファイルから参照されている場所を表示します(問題の下の検索は、ああ= =擬似ニーズのように感じて解決することができます)、404問題も存在します。

ピップツール  サードパーティのファイルを通してrequirements.txtを生成する、なぜ直接書かないのか、サードパーティのパッケージを通して変換の層を行うために推論する

推奨使用方法

一般的にプロジェクトは、開発環境、テスト環境、本番環境に分けられます。......は、それらに依存する異なるパッケージを持っています。フォルダ内に各環境用のrequirements.txtを作成することをお勧めします。参考までに、公開されているパッケージはbase.txtに存在します。 

➜ meeting git:(sync) ✗ tree requirements -h
requirements
├── [ 286] base.txt
├── [ 80] local.txt
└── [ 28] production.txt

上記のようなツールはうまく機能しないので、手動で依存関係リストを管理することをお勧めします。結局のところ、pipのインストール直後に依存性ファイルを編集するのは面倒です。

setup.pyとrequirements.txtの違いについて

setup.pyファイルはモジュールを管理するために使用されます。あなたのプロジェクトをモジュールとしてパッケージングしてpypiにアップロードしたり、pythonのsystem load moduleディレクトリにモジュールとして置いたりすることができます。

requiremens.txt は、あなたのプロジェクトが参照する依存関係のうち、このプロジェクトの一部ではないものをリストアップするファイルですが、それ以外には何も行いません。

つまり、2つのプロジェクトは実際には対立する関係ではなく、共存する必要性が高いことがおわかりいただけると思います。

  1. プロジェクトがシステムモジュールとして保存される必要がある場合、またはsetup.pyがシステムコマンドとしてインストールできる場合、必須です
  2. プロジェクトが実行可能な状態であれば、requirements.txtも必須です。
  3. 両方の機能が必要な場合は、どちらのファイルも必要ありません。

両方の機能が必要ですか?

はい、あるはずです。Flaskなど、両方をサポートするものも多くあります。

  1. システムコマンドとして起動し、設定後コマンドとして実行できるClickパッケージがFlask 0.11.1で新たに追加された
  2. 直接実行する、Flask を起動する従来の方法は app.run() または python manage.py runserver です。