パイプラインを介して特定のコードを他のシステムで実行するために移植可能にするにはどうすればよいですか?

パイプラインを介して特定のコードを他のシステムで実行するために移植可能にするにはどうすればよいですか?

問題の解決策を検索すると、しばしば次のコード行が見つかります。

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

これは、Pythonスクリプトを使用してインターネット接続速度を測定するコード行です。私のコンピュータでコードが何をしているのかわからず、このようなコード行を実行するとセキュリティに影響を与える可能性があることがわかります。しかし、コードを開発して単に個人的な用途に使用したいときは問題にはなりません。何か。

この場合はPythonスクリプトですが、サイズで判断すると、いくつかのライブラリが同じスクリプトに統合されているため、このように実行できると仮定します。だから私の質問は:Pythonコードを単一のファイルに統合する方法は?コマンドラインがありますか?たとえば、標準ライブラリの一部ではない特定のライブラリを使用しているとしますgeopandas。これを自分のスクリプトに自動的に統合する方法はありますか?

バイナリソリューションを使用すると、異なるシステム間の移植性を高めることができますか?そのようなパイプラインでどの言語でも書かれたコードを実行できるようにしますか?

ベストアンサー1

理論的にはスクリプトに含めることができますが、そうしないことをお勧めします。モジュールによっては、スクリプトの容量がかなり大きくなります。

特定のPythonバージョンやその他の要件が必要な場合があります。通常、小さな前提条件のメモを追加し、次のものを含めるのが
最善です。README.mdrequirements.txt簡単なインストールでpip

その後、次のように一度に実行できます。

pip install -r <(curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/requirements.txt) \
&& curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

または

git clone https://github.com/sivel/speedtest-cli.git
cd speedtest-cli
pip install -r requirements.txt
python speedtest.py

後者は簡単ですgit pull

(実際、これはリポジトリにインストールスクリプトが含まれており、すべてをREADME.md説明しているので悪い例ですが、それを無視しました...)

おすすめ記事