在一些 Python 脚本中,我看到以下导入:
import fileA
import someDir.fileB
from fileC import functionA
有对应的文件fileA.py
,someDir/fileB.py
和fileC.py
。但是,在查看请求源代码时,我在__init__.py
文件中找到了这个:
from requests.packages.urllib3.contrib import pyopenssl
在这种情况下,requests
是 CWD 并且packages.urllib3.contrib.pyopenssl.py
是文件。为什么这违反惯例?我确实看到该packages.urllib3.contrib
目录也有一个__init__.py
文件,这似乎是相关的。
此外,我不确定它是否相关,但我认为是相关的,所以我将其发布在这里。在我的脚本中,我有文件夹kennethreitz/requests
,因为应用程序依赖于 Requests 模块,但我将它部署到可能没有安装 Requests 的环境中。但是,简单地添加到文件import kennethreitz.requests
中并不包括 Requests 模块。我import kennethreitz.requests.__init__
和其他一些明显的排列,但我无法导入模块。如何使用我的代码打包请求?明显的谷歌搜索没有帮助。