我目前正在开发一个几乎可以分发的软件包。因此,我正在尝试在我的系统上安装它(通过setup.py
)。但是,我还需要访问当前(源代码)包,例如用于测试。
是否可以显式强制导入本地包而不是已安装的版本?我已经尝试过的是在sys.paths
开头添加路径,没有运气。
我想这个问题涉及Python究竟如何查找要导入的模块,以及如何更改顺序。
编辑:这是一个愚蠢的错误,在sys.paths
作品的开头添加。我在其他地方有一些其他import
语句首先被执行。
答案 0 :(得分:2)
做force importing the local package
。
Python3 总是首先导入内置模块,显然你使用的是Python3,因为Python2是本地优先的。
我不知道如何解决这个问题,如果我是你,我会重命名该文件。
修改强>
您不使用append
因为追加即将结束。使用insert
。
测试我的CPU。我在另一个文件夹中创建了requests.py
。
>>> import sys
>>> sys.path.insert(0 ,"path-to-another-folder/")
>>> import requests
>>> requests.get
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'get'
>>>
如果我没有sys.path.insert(0 ,"path-to-another-folder/")
,则requests
会正常导入。