所以这是一个奇怪的... 我承认,我使用
的混合安装我自己的模块但在使用'pip uninstall'并手动删除任何剩余的鸡蛋或鸡蛋链接,甚至* .pth文件中的条目后,我无法确定导入模块(planet4)的剩余能力的来源。
我尝试了显而易见的:planet4.__file__
,但那是空的:
In [12]: planet4.__file__
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-12-09c196cdfffe> in <module>()
----> 1 planet4.__file__
AttributeError: module 'planet4' has no attribute '__file__'
Python仍然认为这是一个模块:
In [16]: type(planet4)
Out[16]: module
当我尝试使用pkg_resources
来访问某些隐藏的文件路径时,我得到了最奇怪的错误,即使Google只看过几次,至少与删除相关包:
In [10]: import pkg_resources as pr
In [11]: pr.resource_exists('planet4', 'data')
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
<ipython-input-11-3ac559fe861b> in <module>()
----> 1 pr.resource_exists('planet4', 'data')
/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/setuptools-19.6.2-py3.5.egg/pkg_resources/__init__.py in resource_exists(self, package_or_requirement, resource_name)
1137 def resource_exists(self, package_or_requirement, resource_name):
1138 """Does the named resource exist?"""
-> 1139 return get_provider(package_or_requirement).has_resource(resource_name)
1140
1141 def resource_isdir(self, package_or_requirement, resource_name):
/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/setuptools-19.6.2-py3.5.egg/pkg_resources/__init__.py in has_resource(self, resource_name)
1603
1604 def has_resource(self, resource_name):
-> 1605 return self._has(self._fn(self.module_path, resource_name))
1606
1607 def has_metadata(self, name):
/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/setuptools-19.6.2-py3.5.egg/pkg_resources/__init__.py in _has(self, path)
1658 def _has(self, path):
1659 raise NotImplementedError(
-> 1660 "Can't perform this operation for unregistered loader type"
1661 )
1662
NotImplementedError: Can't perform this operation for unregistered loader type
任何人都有我可以尝试的想法吗?
答案 0 :(得分:1)
打开python提示
import sys
for p in sys.path:
print p
这会给你一个目录列表。查看所有名称为planet4
的目录或文件。还要查找任何.pth
个文件。如果您发现任何内容,请在文本编辑器中打开它们,它们将为您提供更多目录,以便查看,冲洗和重复。
答案 1 :(得分:-1)
呻吟,显然,PYTHONPATH(我不再使用它)甚至在模块命名空间中为没有__init__.py
文件的文件夹创建条目。
所以,不知道这一点,加上我不记得我仍然定义了PYTHONPATH环境变量的事实,创造了这个难题。
PYTHONPATH真的是许多邪恶的来源...... :(
<强>更新强>
因此,虽然这个条目是我在特定情况下出错的答案,但是接受的答案是我如何找到它以及在类似情况下如何找到它:我查看sys.path
有什么可疑的。