.pyc(コンパイル済みpython)ファイルを実行する方法は?


18

Pythonファイルをコンパイルすると、*。pycファイルが取得されます。それを実行しようとすると、それらを実行するプログラムがないというメッセージが表示されます。そのオプションを使用してオンラインでプログラムを検索すると、何もありませんと表示されます。誰も私がそこにファイルを実行するのを手伝ってもらえますか?

回答:


24

Pythonファイルはバイトコンパイルされているため、Pythonインタープリターを使用して実行する必要があります。

python yourfile.pyc

.pyファイルを直接実行できる理由は、次の行があるためです。

#!/usr/bin/python

または

#!/usr/bin/env python

または.pyファイルの最初の行に類似したもの。これは、Pythonインタープリターでファイルの残りを実行するようシェルに指示します。


3
この答えを補完するために、.pycファイルはネイティブマシンコードではないため、用語の最も厳密な意味でコンパイルされません。@tomdachiが書いたように、Python固有のバイトコード(Java .classに非常に似ています)であるため、実行にはpythonインタープリターが必要です。
ピエール・アントワーヌ

実際、pycは、pyファイルをインポートしたときにのみ生成されました。そのため、pycファイルを実行しても意味がありません!
癌を患い、かつ卓越したプロセスが来家の金融を明らかにするために理想的です

2

コンパイル済みの.pyc python3ファイルを逆コンパイルするためuncompyle6に、現在のUbuntu OSで次のように使用しました。

  1. uncompyle6のインストール:

    pip3 install uncompyle6
  2. .pycファイルから.pyファイルを作成するには、次を実行します。

    uncompyle6 -o . your_filename.pyc
  3. 既存の.pycファイル名と同じ新しい.pyファイルが自動的に作成されます。


-1

Pythonは.pyファイルをコンパイルし、それを.pycファイルとして保存して、後続の呼び出しで参照できるようにします。.pycには、Pythonソースファイルのコンパイル済みバイトコードが含まれています。これは、Pythonインタープリターがソースをコンパイルする先です。このコードは、Pythonの仮想マシンによって実行されます。それらを削除しても問題はありません(.pyc)が、多くの処理を行っている場合はコンパイル時間を節約できます。

Pythonは、コンパイルされた言語とは対照的に、インタプリタ言語です。ただし、バイトコードコンパイラが存在するため、区別がぼやけている場合があります。コンパイルとは、通常、マシンコードに変換することを意味し、これが最速で実行されます。しかし、インタプリタは人間が読めるテキストを受け取って実行します。彼らは中間段階でこれを行うことができます。

たとえば、myprog.pyソースファイルを実行すると、pythonインタープリターはまず、myprog.pyc存在するかどうか(バイトコードコンパイルされたバージョンmyprog.py)、およびが最新かどうかを確認しmyprog.pyます。その場合、インタープリターはそれを実行します。存在しない場合、またはmyprog.pyそれよりも新しい場合(ソースファイルを変更した場合)、インタープリターは最初にコンパイルしますmyprog.pymyprog.pycます。

上記の例には1つの例外があります。#! /usr/bin/env pythonの最初の行に配置する場合はmyprog.py、実行可能にしてから、myprog.py単独で実行します。


1
Ask Ubuntuへようこそ!これは、pycファイルが存在する理由の良い説明ですが、ファイルの実行方法に関する質問には答えていません。回答ではなく、非常に拡張されたコメントとして修飾できます。投稿を編集して実際の回答を追加してください。
メレビウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.