質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

13449閲覧

pip freeze > requirements.txtで作成すると @file:ができる?

nahi123

総合スコア14

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1グッド

1クリップ

投稿2020/06/26 00:14

編集2020/06/26 01:47

conda 4.8.3の環境でpip freeze > requirements.txtをするとファイルが作成されるが、バージョンではなく
@ fileが作成されるがこれは何でしょうか?
バージョンではなく、これが表示される理由も知りたいです。
素人なので、わかりやすく説明してもらえると助かります。

pip freeze > requirements.txt結果  (質問以下の バージョンではなく@fileが表示される理由)

astroid @ file:///opt/concourse/worker/volumes/live/b22b518b-f584-4586-5ee9-55bfa4fca96e/volume/astroid_1592495912194/work bcrypt==3.1.7 blinker==1.4 certifi==2020.6.20 cffi==1.14.0 click==7.1.2 cycler==0.10.0 dnspython==1.16.0 ecdsa==0.13 email-validator @ file:///home/conda/feedstock_root/build_artifacts/email_validator_1589962946737/work flake8==3.8.3 Flask==1.1.2 Flask-Admin @ file:///tmp/build/80754af9/flask-admin_1592429635880/work Flask-Bcrypt==0.7.1 Flask-Login==0.5.0 Flask-Mail==0.9.1 flask-msearch==0.2.9 Flask-SQLAlchemy==2.4.3 Flask-WTF==0.14.3 gunicorn==20.0.4 idna==2.9 importlib-metadata==1.6.1 isort==4.3.21 itsdangerous==1.1.0 Jinja2==2.11.2 kiwisolver==1.2.0 lazy-object-proxy==1.4.3 MarkupSafe==1.1.1 matplotlib @ file:///Users/runner/miniforge3/conda-bld/matplotlib-base_1592576116805/work mccabe==0.6.1 mkl-fft==1.1.0 mkl-random==1.1.1 mkl-service==2.3.0 numpy==1.18.5 pandas @ file:///opt/concourse/worker/volumes/live/38d1301c-8fa9-4d2f-662e-34dddf33b183/volume/pandas_1592841668171/work psycopg2==2.8.4 pycodestyle @ file:///home/conda/feedstock_root/build_artifacts/pycodestyle_1589305246696/work pycparser==2.20 pycryptodome==3.9.7 pyflakes==2.2.0 pylint @ file:///opt/concourse/worker/volumes/live/42ede439-2571-4cb2-513c-394625d2381b/volume/pylint_1592496039330/work pyparsing==2.4.7 python-dateutil==2.8.1 pytz==2020.1 six @ file:///home/conda/feedstock_root/build_artifacts/six_1590081179328/work SQLAlchemy==1.3.17 toml @ file:///tmp/build/80754af9/toml_1592853716807/work tornado==6.0.4 typed-ast==1.4.1 Werkzeug==1.0.1 wrapt==1.11.2 WTForms==2.3.1 xlrd==1.2.0 zipp==3.1.0

Conda list結果

astroid 2.4.2 py37_0 anaconda bcrypt 3.1.7 py37h9bfed18_1 conda-forge blas 1.0 mkl anaconda blinker 1.4 py_1 conda-forge ca-certificates 2020.1.1 0 anaconda certifi 2020.6.20 py37_0 anaconda cffi 1.14.0 py37h356ff06_0 conda-forge click 7.1.2 py_0 anaconda cycler 0.10.0 py_2 conda-forge dnspython 1.16.0 py_1 conda-forge ecdsa 0.13 py_0 conda-forge email_validator 1.1.1 pyh9f0ad1d_0 conda-forge flake8 3.8.3 py_0 anaconda flask 1.1.2 py_0 anaconda flask-admin 1.5.4 py_0 anaconda flask-bcrypt 0.7.1 py_1 conda-forge flask-login 0.5.0 py_0 anaconda flask-mail 0.9.1 py_2 conda-forge flask-msearch 0.2.9 pypi_0 pypi flask-sqlalchemy 2.4.3 pypi_0 pypi flask-wtf 0.14.3 py_0 anaconda freetype 2.10.2 h8da9a1a_0 conda-forge gmp 6.2.0 h4a8c4bd_2 conda-forge gunicorn 20.0.4 py37_0 anaconda idna 2.9 py_1 conda-forge importlib-metadata 1.6.1 py37_0 anaconda intel-openmp 2020.1 216 anaconda isort 4.3.21 py37_0 anaconda itsdangerous 1.1.0 py37_0 anaconda jinja2 2.11.2 py_0 anaconda kiwisolver 1.2.0 py37ha1cc60f_0 conda-forge krb5 1.16.4 hddcf347_0 anaconda lazy-object-proxy 1.4.3 py37h1de35cc_0 anaconda libcxx 10.0.0 1 libedit 3.1.20191231 haf1e3a3_0 libffi 3.2.1 h0a44026_6 libgfortran 3.0.1 h93005f0_2 anaconda libpng 1.6.37 hbbe82c9_1 conda-forge libpq 11.2 h051b688_0 anaconda markupsafe 1.1.1 py37h1de35cc_0 anaconda matplotlib 3.2.2 0 conda-forge matplotlib-base 3.2.2 py37hddda452_0 conda-forge mccabe 0.6.1 py37_1 anaconda mkl 2019.4 233 anaconda mkl-service 2.3.0 py37hfbe908c_0 anaconda mkl_fft 1.1.0 py37hc64f4ea_0 anaconda mkl_random 1.1.1 py37h959d312_0 anaconda ncurses 6.2 h0a44026_1 numpy 1.18.5 py37h1da2735_0 anaconda numpy-base 1.18.5 py37h3304bdc_0 anaconda openssl 1.1.1g h1de35cc_0 anaconda pandas 1.0.5 py37h959d312_0 anaconda pip 20.1.1 py37_1 psycopg2 2.8.4 py37ha12b0ac_0 anaconda pycodestyle 2.6.0 pyh9f0ad1d_0 conda-forge pycparser 2.20 py_0 conda-forge pycryptodome 3.9.7 py37h51495b9_1 conda-forge pyflakes 2.2.0 py_0 anaconda pylint 2.5.3 py37_0 anaconda pyparsing 2.4.7 pyh9f0ad1d_0 conda-forge python 3.7.6 h359304d_2 python-dateutil 2.8.1 py_0 anaconda python_abi 3.7 1_cp37m conda-forge pytz 2020.1 py_0 anaconda readline 7.0 h1de35cc_5 setuptools 47.3.1 py37_0 six 1.15.0 pyh9f0ad1d_0 conda-forge sqlalchemy 1.3.17 pypi_0 pypi sqlite 3.32.3 hffcf06c_0 tk 8.6.10 hb0a8c7a_0 toml 0.10.1 py_0 anaconda tornado 6.0.4 py37h9bfed18_1 conda-forge typed-ast 1.4.1 py37h1de35cc_0 anaconda werkzeug 1.0.1 py_0 anaconda wheel 0.34.2 py37_0 wrapt 1.11.2 py37h1de35cc_0 anaconda wtforms 2.3.1 py_0 anaconda xlrd 1.2.0 py37_0 anaconda xz 5.2.5 h1de35cc_0 zipp 3.1.0 py_0 anaconda zlib 1.2.11 h1de35cc_3
YouheiSakurai👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/26 00:54

pip freezeとconda listコマンドは全く別のコマンドです。質問文の部分にconda listコマンドの実行結果をはられてもわからないのでpip freezeコマンドの実行結果を貼ってください。 また、anacondaとpipは全く別のライブラリインストールシステムです。詳しくは以下のサイト等を参考にしてみてください。 https://qiita.com/toto1310/items/14bdbaccd53bed74715c
nahi123

2020/06/26 01:16

最初のリストがpip freezeの結果です
guest

回答2

0

ベストアンサー

pipのマニュアルに記載がなかったため調べました。

PEP 610によると、pip freezeというコマンドで表示されるパッケージの表記は2つの表記があるようです。

  1. the package to install is specified as a name and version specifier
  2. The package to install is specified as a direct URL reference

1つ目はよく見るname==versionの形式で、2つ目が今回の@ file://を含むdirect URL referenceという方式です。この情報はdirect_url.jsonに記録されています。例えば

terminal

1find /path/to/site-packages -name "direct_url.json"

としてこのファイルがある場合、このファイルに記述された情報が出力されます。@file以外にも@ https://github.com/...などがあります。

ここからは私の想像ですが、@fileが表示されるのはanaconda(miniconda)を使っている場合が多いです。少なくともpyenvでは見たことがありません。anacondaがインストール時にローカルで何か作業したパッケージは@fileがつくのかなと考えています。

condaを使ってrequirements.txt相当のファイル(package-list.txt)を作るとき

terminal

1conda list --export

を使いますが、こちらにはdirect URL referenceは表示されません。漠然とcondaとpipを混在して使っていましたが、anacondaを使うときはpip freezeではなく上記コマンドを使うべきなんでしょう。

参考URL:

投稿2020/06/27 07:44

編集2020/06/27 07:56
yymmt

総合スコア1615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nahi123

2020/06/27 13:35

ありがとうございます。オフラインで、ローカルのファイルシステムを使って作業する時は、@ fileが有効な方法って感じでしょうか・・・ Herokuに導入するときに、@ fileだと困ったので、pip list --format=freezeでバージョンだけを出力して、それで対応しました。 pip freezeとの違いは、よく理解してませんが(若干内容が異なる)。 https://github.com/pypa/pip/issues/8174
guest

0

シェル上の > の記号はリダイレクトといいます
標準出力の結果をそのファイルにします

投稿2020/06/26 01:25

y_waiwai

総合スコア88024

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nahi123

2020/06/26 01:48

pip freeze > requirements.txt結果が最初のリストで、その中で、バージョンではなく@ fileが表示される理由が今回の質問です。例えば、以下のような表示 @ file:///opt/concourse/worker/volumes/live/b22b518b-f584-4586-5ee9-55bfa4fca96e/volume/astroid_1592495912194/work
y_waiwai

2020/06/26 01:59

> 最初のリストがpip freezeの結果です ってことなんでは? なら、 pip freezeコマンドの実行結果を貼ってください。 ってはなしになりますが
nahi123

2020/06/26 02:03 編集

最初がpip freezeの結果です。わかりづらくてすみません。例えばastroid, flask-admin, matplotlibの表示のところが、@ file・・・・で表示されてます
y_waiwai

2020/06/26 02:49

そう標準出力に出力されるものなら、リダイレクトしたならそうファイルに格納されるのは当たり前の話ですが。
nahi123

2020/06/26 03:36

なんでそうなるのかが分からないから質問ですが?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問