Python 3開発ファイルを確実に検出

Python 3開発ファイルを確実に検出

私のプロジェクトに必要なすべてのパッケージをインストールするシェルスクリプトがあります。これらのパッケージのいくつかはPython 3に基づいており、コンパイルする必要があり、Pythonソース1をインストールする必要があります(python3-dev一般的なDebianベースのディストリビューションのパッケージなど)。それ以外の場合、理解できない、または誤解を招くコンパイルエラーメッセージ(ヘッダーファイルがありません)が表示されますが、これが私が避けたいことです。

これで、Python 3ソースがすでにインストールされているかどうかを検出する方が良いと思います。実行しようとしない場合に備えて、代わりにpipユーザーに配布用のPythonソースをインポートするように指示し、一部は最も一般的なガイドラインの1つです。

簡単に言うと、Python 3ヘッダーがさまざまなディストリビューションにインストールされているかどうかを確実に検出する方法は何ですか(おそらくCygwinなどのLinux以外の環境でも可能です)。


1. パッケージmypyといくつかのエラーメッセージは次のとおりです。

ast27/Parser/acceler.c:13:25: fatal error: pgenheaders.h: No such file or directory
compilation terminated.

[… ]

 Command "/path/to/my/venv/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-x0e2zn8t/typed-ast/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-uythmwn1-record/install-record.txt --single-version-externally-managed --compile --install-headers /path/to/my/venv/include/site/python3.5/typed-ast" failed with error code 1 in /tmp/pip-build-x0e2zn8t/typed-ast/

ベストアンサー1

python3-config解決策が見つかりました。デフォルトでは、ここにPython 3開発ファイルがあることを示す()に解決策があることを確認してください。PATHcommand -v python3-config >/dev/null

もう一歩進めたい場合は、理論的には、このツールを使用して必要な特定のヘッダーファイルを確認できるインクルードディレクトリをインポートすることもできますが、それは必要ではないと思います。

python2-configただし、Python 2とPython 2.7+(およびそれぞれpython2.7-config)にも同じことが当てはまります。

おすすめ記事