1

いくつかの Python スクリプトを Azure Web ジョブとしてデプロイしていますが、いくつかの共有モジュール (zip ファイルの形式) をインポートする際に問題が発生しました。zip ファイルをスクリプト ファイルと同じディレクトリにコピーすると、すべて正常に動作します。しかし、zip ファイルを別のディレクトリに移動すると、動作が停止します。

それでは具体的に。

1)これは機能します

ディレクトリ構造:

App_data
  jobs
    continuous
      firstjob
        azure.zip
        job1.py
      secondjob
        azure.zip
        job2.py

job1.py (および job2.py) に、次のコードを追加します。

  sys.path.insert(0, 'azure.zip')
  from azure.storage.blob import *

1) これは機能しません

ディレクトリ構造:

App_data
  pylib
    azure.zip
  jobs
    continuous
      firstjob
        job1.py
      secondjob
        job2.py

job1.py (および job2.py) に、次のコードを追加します。

  lib_path = os.path.realpath('..\..\..\pylib')
  sys.path.insert(0, os.path.join(lib_path, 'azure.zip'))
  # I verified by printing sys.path that the correct path is added for azure.zip
  from azure.storage.blob import *

これにより、インポート エラーが発生します。何か案は?

4

3 に答える 3

0

以下のコード スニペットを実行して、2 番目のジョブでこの問題の原因を突き止めようとしました。

import os
real_path = os.path.realpath('.')
print real_path

real_path現在の Web ジョブ パスの変数の結果はですD:\local\Temp\jobs\continuous\second\<a generated name like vjvunhav.obn>\

ノート

のパスを知るには、Wiki-DocのセクションLoggingWeb Jobsを参照してくださいWebJobs - Console.Out and Console.Error

/Home/site/wwwroot/App_Data/pylib/azure.zipしたがって、以下のコードで絶対パスを直接使用することができます。

import sys
sys.path.insert(0, '/Home/site/wwwroot/App_Data/pylib/azure.zip')

よろしくお願いします。

于 2016-02-01T09:27:16.307 に答える