无法使用相对导入从当前目录导入urllib3

时间:2019-12-04 15:43:12

标签: python import compilation python-import urllib

当我尝试运行已编译的Python可执行文件时,请求模块遇到了一个奇怪的问题。

确切的错误消息如下:

  File "tradingbot.py", line 11, in init tradingbot
  File "C:\Users\igors\Downloads\olympian_(4)\bin3\lib\site-packages\requests\__init__.py", line 60, in <module>
    from .packages.urllib3.exceptions import DependencyWarning
  File "C:\Users\igors\Downloads\olympian_(4)\bin3\lib\site-packages\requests\packages\__init__.py", line 29, in <module>
    import urllib3
ImportError: No module named urllib3

如您所见,__init__.py文件无法导入urllib3模块。

遵循路径后,我们将看到以下目录:

enter image description here

之后,我决定研究__init__.py,并找到以下导入代码:

try:
    from . import urllib3
except ImportError:
    import urllib3
    sys.modules['%s.urllib3' % __name__] = urllib3

如您所见,错误消息所指的行是import urllib3

问题是,为什么程序要努力查找包含urllib3模块的文件夹,而该文件夹显然与 init 文件位于同一目录中?

请记住,该程序无需在用户的PC上预安装Python或任何其他库即可运行。它应该从自己的资源中收集所有文件。

P.S。人们要求我显示urllib3文件夹的内容,所以这里是:

enter image description here

2 个答案:

答案 0 :(得分:0)

可能在urllib3文件夹中,您需要导入一个.py文件。或者,您可以一次导入所有内容。您可以分别执行以下操作:

import urllib3.[file you want to import]
from urllib3 import *

答案 1 :(得分:0)

通常python模块本身应包含__init__.py

您能否提供有关urllib3文件夹中内容的更多信息?

同样,如果您不想在pc中安装任何内容,也可以尝试查看https://docs.python.org/3/library/venv.htmlhttps://www.docker.com/