【问题标题】:Python external on Azure ImportError No Module FoundAzure ImportError 上的 Python 外部未找到模块
【发布时间】:2018-07-05 23:47:54
【问题描述】:

如果我使用 python main.py 在本地运行我的代码,则此错误会在本地发生。如果我使用 python3 main.py 运行它,它会按预期工作。我怀疑我的 azure app 服务没有运行正确版本的 python,但是,它设置为 python 3.4

    StdErr: 
2018-06-30 19:47:13.785205: Unhandled exception in wfastcgi.py: Traceback (most recent call last):
  File "D:\Python34\Scripts\wfastcgi.py", line 711, in main
    env, handler = read_wsgi_handler(response.physical_path)
  File "D:\Python34\Scripts\wfastcgi.py", line 568, in read_wsgi_handler
    return env, get_wsgi_handler(handler_name)
  File "D:\Python34\Scripts\wfastcgi.py", line 541, in get_wsgi_handler
    handler = handler()
  File ".\ptvs_virtualenv_proxy.py", line 120, in get_venv_handler
    handler = get_wsgi_handler(os.getenv('WSGI_ALT_VIRTUALENV_HANDLER'))
  File ".\ptvs_virtualenv_proxy.py", line 89, in get_wsgi_handler
    raise ValueError('"%s" could not be imported%s' % (handler_name, last_tb))
ValueError: "main.app" could not be imported: Traceback (most recent call last):
  File ".\ptvs_virtualenv_proxy.py", line 73, in get_wsgi_handler
    handler = __import__(module_name, fromlist=[name_list[0][0]])
  File "D:\home\site\wwwroot\main.py", line 2, in <module>
    from newspaper import Article
ImportError: No module named 'newspaper'

更新

所以我在 kudo 中进入调试控制台并运行 python -m pip install --upgrade -r d:\home\site\wwwroot\requirements.txt.

这是错误

 ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n" ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt

其中一个要求是需要 libxml2 和 libxslt 的 Pillow。但是我尝试过使用轮子,但没有成功。

更新二 我尝试安装 virtualenv,因为它不存在并且我收到权限错误。

更新 III 我运行了这个命令

D:\home\python364x64>python -m pip install newspaper3k

我在本地测试了所有内容,并且效果很好。我在下面推送并收到此错误。

Error occurred while reading WSGI handler:

Traceback (most recent call last):
  File "D:\home\python364x64\wfastcgi.py", line 791, in main
    env, handler = read_wsgi_handler(response.physical_path)
  File "D:\home\python364x64\wfastcgi.py", line 633, in read_wsgi_handler
    handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
  File "D:\home\python364x64\wfastcgi.py", line 600, in get_wsgi_handler
    handler = __import__(module_name, fromlist=[name_list[0][0]])
  File ".\app.py", line 8, in <module>
    from newspaper import Article
  File "D:\home\python364x64\lib\site-packages\newspaper\__init__.py", line 10, in <module>
    from .api import (build, build_article, fulltext, hot, languages,
  File "D:\home\python364x64\lib\site-packages\newspaper\api.py", line 12, in <module>
    import feedparser
  File "D:\home\python364x64\lib\site-packages\feedparser.py", line 316
    raise KeyError, "object doesn't have key 'category'"
                  ^
SyntaxError: invalid syntax


StdOut: 

StdErr: 

【问题讨论】:

  • 你是用 pip install news3k 安装的吗?
  • 我使用 pip3 install news3k 安装
  • 仍然出现错误?
  • 当我在本地运行它时,使用 pip3 install xxxx 安装我所有的外部库,然后使用 python3 main.py 运行它。当我部署到天蓝色时,它失败了。然后显示上面的日志。
  • 我不确定你是否遇到了我的错误,但我这样解决了:github.com/yokawasa/azure-functions-python-samples/blob/master/… 基本上在你的 webapp 站点文件夹中创建一个 Venv,将它添加到你代码中的路径并导入模块。

标签: python python-3.x azure azure-app-service-envrmnt


【解决方案1】:

根据我的经验,我们无权修改D:\home 环境。

所以,最好使用 python 扩展。在这种情况下,请按照以下步骤操作:Azure Flask Routes Not found 并使用命令python -m pip install newspaper 在 python 扩展中安装附加包。

请确保您要安装的软件包必须与 python 扩展的版本匹配。否则会报如下错误。

希望对你有帮助。

【讨论】:

猜你喜欢
  • 2015-08-03
  • 2011-03-18
  • 2017-04-09
  • 2021-04-01
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多