私はこのトピックのいくつかの検索を行い、いくつかの以前のスレッドを見つけましたが、私はまだPythonの初心者です。windowsスケジューラを通して実行するときのPython ImportError
私はいくつかの長い文字列変数がサブディレクトリのさまざまな.pyファイルに格納されているPythonスクリプトを持っています。スクリプトを実行すると、そのサブディレクトリから.pyファイルをインポートしています。サブディレクトリには__init__.py
ファイルがあります。私がこの設定を使用している唯一の理由は、それらの他のファイルに格納している長い文字列変数が、SQL文字列であり、それぞれ50〜100行に及ぶ可能性があるため、コードを読みにくくすることです。
PyCharmを通じてこのスクリプトを実行すると、すべてが完全に機能します。
ただし、Windowsスケジューラまたはバッチファイルでスクリプトを実行すると、サブディレクトリにあるすべての.pyファイルに対してImportErrorが発生します。この問題は、pythonスクリプトがWindowsスケジューラを介して実行されているときに、それらの.pyファイルを探す場所を知らないということとはまったく関係がありません。しかし、私はそれを修正する方法がわかりません。
スケジューラタスクのアクションはスクリプト
D:\python\tableaudatasourcebuilds\dcitechnicalperformance\dcitechnicalperformance0.py
だから、完全なアクションがどのように見えるとして、引数にPythonのexeファイル
D:\Python35\python.exe
を実行することです:
D:\Python35\python.exe "D:\python\tableaudatasourcebuilds\dcitechnicalperformance\dcitechnicalperformance0.py"
長い文字列変数.pyファイルを格納するサブディレクトリは、
です。D:\python\tableaudatasourcebuilds\dcitechnicalperformance\dcitechnicalperformance0\
輸入は、次のようになります。
from dcitechnicalperformance.dcitechnicalperformance0.dciquer import nzsqldciwk
誰もがこの問題に対処する方法を知っていますか?どんな助けでも大歓迎です。
残念ながら、この解決策は私のためには機能しませんでした。私はまだインポートエラーを受け取りました。私が解決した方法は、クエリをテキストとして保存し、テキストファイルをコードとして実行することです。おそらく最適な解決策ではないかもしれませんが、少なくともそれは機能します。 – SeaChange