2016-09-14 9 views
0

私はPythonでPythonで書かれた単純な中規模の複雑なスクリプトを自分のラップトップに作成しており、Crontabを使って自分のRaspberry Piで実行したいと考えています。私の過去のプログラミング経験はすべてWindowsのC++とC#で行われていたので、通常はプロジェクトのビルドを行い、すべてがコンパイルされ、単一の実行可能ファイルにリンクされます。Pythonを別のマシンで実行するためにPythonをコンパイルする

Pythonの場合、別のPCで実行できるようにスクリプトをどのように「コンパイル」しますか?私はPycharmアプリケーションを使ってインストールしなければならなかったいくつかの外部ライブラリ(要求とImgurClient)を使用します。私はこれらがRaspPiにも取られる必要があると思うのは正しいと思いますか?私のスクリプトは2つのファイルになっているので、これらのファイルを両方ともコピーする必要がありますか?それらを1つのファイルにまとめて簡単に使用できる方法はありますか?

これは私が他の言語の知識とちょっとしたグーグルの知識から書いた初めてのスクリプトです。私は実際のスクリプトを持っている今、どのように進めるかわかりません。

+1

コンパイルする必要はあり、あなたが必要とするすべてのターゲット・マシン上のPythonの互換性のあるバージョンです。その後、.pyファイルをコピーして実行するのと同じくらい簡単です。 –

+0

これはあなたを助けるかもしれませんhttp://stackoverflow.com/questions/11409416/moving-a-python-script-to-another-computer – jh44tx

+0

Linuxでもインタプリタ、スクリプト&デプスを単一のスタンドアロンの実行可能ファイルにパッケージ化することは可能ですが**あなたは本当に**したくないです。これは、Pythonソース(おそらくPythonの卵など)をコピーし、Pythonのソースコードをインストールすることで、従来の方法でやった場合よりもはるかに遅くなります。インタプリタと必要なライブラリ依存関係を作成し、そのインタプリタを使用してファイルを実行します。 [起動時のオーバーヘッドは、一部の大規模なマシンでは許容されるかもしれませんが、Piではずっと多く、**多くは**遅すぎます]。 –

答えて

1

あなたはPythonがあなたのラズベリーパイにインストールされている場合は、単に実行する必要があり、その後、シェルから、:

# This installs pip (Python installer) as well as the requests library 
sudo apt-get install python-pip 

をそれがインストールされると、実行します。

# To install the ImgurClient 
pip install imgurpython 

次に、あなたができるだけ入力して、シェルでスクリプトを実行します。

python your_script_name.py 

すでにPythonがインストールされていない場合は、単に他の人の前にそれをインストールするには、次のコマンドを実行していない:

sudo apt-get install python 
+0

'requests'はすでにパッケージ化されていますか、ここに追加する必要がありますか? –

+0

'requests'が' pip'のインストールの一部としてインストールされました – ode2k

+0

'pip install imgurpython'コマンドに問題があります。 "ImportError:cannoy import name IncompleteRead"というエラーが表示されます。これを引き起こしている可能性がありますか?ありがとう –

0

Pythonは解釈言語であるため、コンパイルする必要はありません。あなたはシステムコールをしていない限り、別のマシン上で実行しても問題ありません。システムコールは、Linuxマシン上でWindowsコマンドを使用するようなことをしようとしている場合にのみ問題になります。

これらの2つのファイルをpiにコピーして、通常のように実行します。または端末から

python program.py 
+0

私が使用している外部ライブラリをインストールする必要はありませんか?私は「輸入要求」などをしているので、ラズベリーパイはこれを見つける方法を知る必要があります。 –

+0

@TomDippé、はい、それらをインストールする必要がありますが、Debianを実行しています。それはそれらを(確かに、確かに '要求')パッケージ化しています。 –

+0

@TomDippéあなたが含まれているパッケージについて確信が持てない場合は、いつもあなたのpythonパスを見ることができます。しかしチャールズは、ほとんどの図書館がそこにあるという点では正しかった。唯一のものは、あなたが後でインストールした余分なライブラリ、つまりnumpyやscipyのようなデフォルトのPythonライブラリではありません。それからpipを使ってanacondaのようなものをインストールしてください。 –

0

PyInstallerを使用してください。ターミナルでは、ちょうどこのようなコマンドを使用し、スタンドアローンexeファイルを作成します。

pyinstaller -F myscript.py 
+0

ラズベリーパイのためのものではありません。これらのファイルは.exeファイルを実行しません。あなたはPyinstallの起動時のオーバーヘッドをどうにかしたくないでしょう。 –

+0

RaspPiはDebianベースのRaspbianを実行しているため、exe –

+0

@TomDippéとして実行することはできません。PyInstallerは実際にはWindowsのみではなく、Linux実行可能ファイルも作成できますが、それらのLinux実行ファイルは痛いほど遅く(よく、走り始めるために)Piで走る。 –

0

あなたは.pycへのpythonファイルを「コンパイル」することができますが、あなたはまだそれらを実行するためにRaspPi上のPythonインタプリタが必要になります。

Pythonを搭載していないPCでは、py2exeを使用してスタンドアロンの実行可能ファイルを作成できますが、実行ファイルはWindows上で実行する必要があります。

はあなたのラズベリーパイにPythonインタプリタをインストール、または(py2exeは、そのプラットフォーム上に存在する場合)、それはまた別のラズベリーパイ:)

もう一つの選択肢になりラズベリーパイを対象py2exeと実行可能ファイルを作成する必要がありますCythonとなりますが、使用したいものほど複雑な外部ライブラリがあれば、それは本当に難しいルートになります。

Python on Raspberry Pi

Creating python exes on Linux

0

他の回答が言ったようにPythonコードを解釈し、遵守されていないので、あなただけの、パイの上にあなたのコードを実行することができます。

ImgurClientのようなPythonパッケージをインストールする必要があります。 PCでPyCharmを使ってこれを行った場合は、おそらくPiでpipを使用する必要があります。

0

他の環境でPythonスクリプトを実行できるかどうかは分かりません。特にPythonでインストールする外部ライブラリ(.whl)を使用している場合は特にそうです。それは他のvirtualenvのでライブラリを共有しない独自のインストールディレクトリを持っている環境を、作成し

https://virtualenv.pypa.io/en/stable/

」:

クリーンな環境でスクリプトを実行するための良いオプションはvirtualenvの使用することです(また、グローバルにインストールされたライブラリにアクセスすることもできます)。

そして、スクリプトを実行するために必要なライブラリのみをインストールします。この新しい環境をエクスポートすると、おそらく問題なくスクリプトを実行できるようになります。

関連する問題