問題タブ [pyc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - デプロイ時に *.pyc ファイルを生成する必要がありますか?
Python Web アプリ (Flask/uWSGI) を開発してローカル コンピューターで実行すると*.pyc
、インタープリターによってファイルが生成されます。私の理解では、これらのコンパイル済みファイルは読み込みを高速化できますが、必ずしも実行が高速になるわけではありません。
この同じアプリを本番環境にデプロイすると、ローカル ファイル システムへの書き込み権限を持たないユーザー アカウントで実行されます。ソース管理にコミットされたファイルはなく*.pyc
、デプロイ中にそれらを生成する努力もありません。Python が.pyc
実行時にファイルを書きたいとしても、それはできません。
最近、これがアプリのパフォーマンスに具体的な影響を与えるかどうか疑問に思い始めました。プロセスが開始された後の最初のページビューに関して、またはそのライフタイム全体で一貫して.
python -m compileall
デプロイ スクリプトの一部としてを投入する必要がありますか?
python - 別のマシンでpycファイルを含むpyzを使用する
私が関わっているプロジェクトでは、Ubuntu 14.04 (Python 3.4 を使用) で compileall.compile_dir を使用して Python 製品をパッケージ化しています。pycファイル等のディレクトリをまとめて(tar.gzファイル)配布しています。ファイル名は、ファイル名の cpython-34 部分を削除するように変更されます。
Python 3.5 を搭載した Ubuntu 16.04 を実行する新しいテスト環境があり、コードを実行/テストしたいと考えています。解凍して実行すると、エラーが発生します。
pyz ファイルを手動で解凍し、コマンド ラインから python を実行しようとすると、インポート後に 3.4 バイナリであるというメッセージが表示されます。代わりに、3.5 マシンでパッケージをビルドすると、3.5 マシンで完全に実行できますが、3.4 にコピーすると同じエラーが発生します。
質問は...実行/テストするには何をする必要がありますか? 私が持っていたアイデア... ある種の 3.4 互換モードで 3.5 を実行しています。3.4 をインストールします (Ubuntu 16.04 用の 3.4 パッケージが見つからないため、おそらくソースから)。3.5 の構成設定を調整してみてはいかがでしょうか。3.4 と 3.5 が機能するように、パッケージ化するときに新しい設定を提供することはできますか? いくつかのアイデアを見逃していると思いますが、解決策が何であると思うかについては尋ねたくありません。解決策が何であるかを知りたいです。
googled で pyc ファイルに関連する SO の問題をたくさん見つけたので、3.4 ファイルには互換性がないことはわかっていますが、それを使用する方法はありますか?
python - Python threading.Timer オブジェクトが .exe にコンパイルされたときに機能しない
これはhttps://stackoverflow.com/questions/37684111/ironpython-exe-file-closing-immediately-no-exception-thrownへのフォローアップです
スレッド ライブラリの Timer オブジェクトの問題が原因で、一度コンパイルするとプログラムが動作しないことがわかりました。ライブラリを \Lib\site-packages ディレクトリに含め、そのディレクトリをプログラムのパスに追加しました。これが私が使用しているテストコードです-単純なカウントプログラムです:
Visual Studio 内の Interactive Interpreter で完全に動作しますが、pyc.py を使用して exe ファイルにコンパイルすると、実行されず、〜 5 秒後に単に閉じられ、例外はスローされません。
前の質問で述べたように、ソース コードに機密性の高い資格情報が含まれているため、コンパイルする必要がある Timer を含むプログラムがあります。タイマーをexe内で動作させるために必要なトリックはありますか? それは単に互換性がありませんか?
編集:回答なしで6日間。残念ながら、インターネット上のどこにも、この特定の問題に関するリソースはないようです。この問題を抱えているのは私だけのようです。問題は Timer オブジェクト自体にあるように思われるため、これは奇妙に思えます。また、Timer を含むアプリケーションをデプロイしようとした人が他にいないとは思えません。私は完全に困惑しているので、この時点でどんな洞察も役に立ちます。
python - 新しいコードの使用を強制するためにすべての python *.pyc ファイルを削除しても安全ですか?
TL;DR
*.pyc
すべての(一致する*.py
ファイルを持つ) ファイルを選択して削除し、新しいコードの使用を強制しても安全ですか?.py
既存のファイルを上書きしながら、ディスク上にあるすべてのファイルを見つけて再コンパイルする方法はあり.pyc
ますか?
更新されたカスタム python パッケージに問題があります。
更新後 (古い.py
ファイルを新しいファイルに置き換えた後)、パッケージをインポートするときに、古いコンパイル済みコード(ファイルとして保存されている)が新しいコード(ファイル内にある)の代わりに参照.py
されることに気付きました。*.pyc
.py
パッケージを更新するときは、「キャッシュをフラッシュする」必要があり ます (これらの pyc ファイルをすべて削除すると、最初の使用時に遅延初期化されることを願っています)。ハックとして、ディスクに一致するサフィックス(一致するファイルがある)で見つかったすべてのファイルを削除し、マシンを再起動することを考えました*.pyc
*.py
.py
または、既存のファイルを上書きしながら、ディスク上にあるすべてのファイルを見つけて再コンパイルする方法はあり.pyc
ますか?
powershell - Python プロジェクトから pyc ファイルを再帰的に削除できません
Python プロジェクトから pyc ファイルを再帰的に削除できません。
プロジェクトは次のとおりです。
実際、tests ディレクトリ内にいくつかの pyc ファイルがあります。
ただし、PowerShell で次のコマンドを入力して、すべての pyc ファイルを削除すると:
PowerShell は次のエラーを出力します。
FIND: パラメータの形式が正しくありません
この Python プロジェクトからすべての pyc ファイルを削除する方法を知っている人はいますか?
python - Eclipse プロジェクトでソース ファイルの 1 つの名前を logging.py に変更した後、logging.py をインポートできません
ソースファイルの 1 つの名前を logging.py に変更して Eclipse を壊したのではないかと思いました。名前をすぐに別の名前に変更しましたが、Eclipse は元の python 標準ファイルを見つけることができませんでした。Anaconda のインストールを再インストールしましたが、問題は修正されませんでした。 ..そして、後でPythonの問題である可能性が高いことを発見しました(編集1を参照)
「インポートロギング」行からファイルを検索または開くようにEclipseに依頼すると、ファイルが見つからないようです...
Eclipse を再インストールせずにこの問題を修正する方法はありますか?
編集 1
pyinstaller によって生成された実行可能ファイルでも問題が発生しますか?! :
python - お客様の環境で Python 本番環境を実行する方法
顧客サイトで実行する必要がある Python アプリケーションがいくつかあります。py
ファイルをpyc
(python バイトコード)にコンパイルします。
お客様の環境でアプリを実行する標準的な方法は何ですか? 私が見るオプションは次のとおりです。
- 私のインストーラーの一部として、いくつかの Python ディストリビューション、つまり Anaconda をインストールします。
- お客様の環境に Python をインストールするように要求します。
- Python ライブラリと実行可能ファイルをコードと一緒に持ってきて、インストール ディレクトリから直接実行します。
- py-to-exe ツールを使用して、スクリプトを exe に変換します。
アプリケーションの使用: このアプリは、主な製品の統計を計算するためのツールとして使用されています。顧客が明示的に実行することはありません。GUIはありません。
お客様の環境は x64 Windows マシンになります。その他の制限はありません。
推奨事項やコメントはありますか?そのような議論はウェブ上で見つけることができませんでした。