我在我的机器上安装了django
python模块,并像这样使用它
a.py:
import django.core
...
然后,我在文件django.py
的同一文件夹中创建了一个新文件a.py
,然后重新运行a.py,它会导致导入错误,因为它刚刚导入了我的本地{{1} }
django.py
那么,在导入python模块时如何区分它们?
答案 0 :(得分:0)
您可以使用imp
模块直接从本地路径导入脚本:
mymodule = imp.load_source('mymodule', 'django.py')
然后,您可以使用mymodule
,就像您正常导入它一样。
但请谨慎使用;必须以负责任的方式颠覆python导入内部。
答案 1 :(得分:0)
您可以暂时从PYTHONPATH
删除当前目录:
$ python -c'import numpy.core' # works
$ touch numpy.py # add conflicting module
$ python -c'import numpy.core' # it fails now
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'numpy.core'; 'numpy' is not a package
$ python -c'import sys; sys.path.remove(""); import numpy.core' # works again
毋庸置疑,如果有的话,你应该谨慎使用这些黑客 - 避免手动操纵sys.path
。重命名本地模块,以避免冲突(至少在例如:your_package/numpy.py
内将其移到包中。)