.pyスクリプトから何もインポートせずにバイナリを実行する方法はありますか?

.pyスクリプトから何もインポートせずにバイナリを実行する方法はありますか?

まず、次のコマンドを使用してubuntu-16.04でPythonスクリプトのバイナリを作成しました。

cython3 --embed -o hello.c hello.py

gcc -Os -I /usr/include/python3.5m -o hello hello.c -lpython3.5m -lpthread -lm -lutil -ldl

しかし、議論すべきいくつかの問題があります。

1- Pythonスクリプトを削除すると、バイナリにインポートエラーが発生します(.pyファイルからインポート)。

2- .pyファイルを削除しないと、すべてのバイナリが完全に実行されます(これによりバイナリの生成が完全に無意味になります)。

問題は、実行可能ファイルがバイナリファイルであり、バイナリファイルにインポートされたいくつかの定数と関数が.pyスクリプトからインポートされたことを知っています。

私のプロジェクトコードの流れは次のとおりです。

**Main folder**
  **Scripts1 Folder**
        Script1.py
        Script2.py
        Script3.py & many other .py scripts...
        **Scrip1.1 Folder**
               Script1_1.py
               Script1_2.py & many .py scripts
  **Script2 Folder**
        Script1.py
        Script2.py & many other .py scripts

生成時にインポートされたすべての定数/関数を含むバイナリを実行する方法はありますか?

gccを使用して.pyスクリプトなしで実行できる.pyの.cコードからバイナリを生成する方法はありますか?

.pyスクリプトからのインポートに問題はありません。

例:

スクリプト1から関数1を取得する

script1_2から定数を取得する

実際、問題は、このインポートがバイナリファイルのPythonスクリプトからインポートされ、他のバイナリファイルからバイナリにインポートしたいということです。フォルダから .py スクリプトを削除すると、「ImportError: Cannot import function1 from script1. No such file script1.py」エラーが発生します。

よろしくお願いします。

ベストアンサー1

おすすめ記事