首页 > 解决方案 > Azure ImportError 上的 Python 外部未找到模块

问题描述

如果我使用 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。但是我尝试过使用轮子,但没有成功。

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

在此处输入图像描述

在此处输入图像描述

更新三我运行了这个命令

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: 

标签: pythonpython-3.xazureazure-app-service-envrmnt

解决方案


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

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

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

在此处输入图像描述

希望它可以帮助你。


推荐阅读