Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入的第三方模块没有_文件_属性 背景_Python_Python 2.7 - Fatal编程技术网

Python 导入的第三方模块没有_文件_属性 背景

Python 导入的第三方模块没有_文件_属性 背景,python,python-2.7,Python,Python 2.7,我已经对\uuuu file\uuuu属性如何从、和各种网站工作进行了一些研究 据我所知,只要是从文件加载的,所有python模块都应该有\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu属性 问题 我正在使用安装第三方python模块opencafe (env)$ pip install opencafe 我正在利用这个测试框架 当我从CLI运行test命令时,会出现此问题。运行该命令时,它会触发以下文件:env/lib/python2.7/site packa

我已经对
\uuuu file\uuuu
属性如何从、和各种网站工作进行了一些研究

据我所知,只要是从文件加载的,所有python模块都应该有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
属性

问题 我正在使用安装第三方python模块
opencafe

(env)$ pip install opencafe
我正在利用这个测试框架

当我从CLI运行test命令时,会出现此问题。运行该命令时,它会触发以下文件:
env/lib/python2.7/site packages/cafe/configurator/managers.py

在该文件中有

import cafe
后来

_PLUGIN_DIR = os.path.join(os.path.dirname(cafe.__file__), 'plugins')
运行此文件时,会发生以下错误:

AttributeError: 'module' object has no attribute '__file__'
在这种情况下也会发生相同的错误:

(env) $ pip install opencafe
Collecting opencafe
  Using cached opencafe-0.3.1-py2.py3-none-any.whl
Installing collected packages: opencafe
Successfully installed opencafe-0.3.1
(env) $ python
Python 2.7.10 (default, Jul 30 2016, 18:31:42)
>>> import cafe
>>> cafe.__file__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
(env)$pip安装opencafe
收集opencafe
使用缓存的opencafe-0.3.1-py2.py3-none-any.whl
安装收集的软件包:opencafe
已成功安装opencafe-0.3.1
(环境)$python
Python 2.7.10(默认值,2016年7月30日,18:31:42)
>>>进口咖啡馆
>>>咖啡馆__
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“\u_文件”
我的想法 我自然倾向于认为这是opencafe本身的问题,因为我只是在安装框架并从CLI运行测试命令

然而,我想知道在虚拟环境中的安装是否有问题,或者PYTHONPATH是否有问题

文档中明确指出,“静态链接到解释器的C模块不存在
\uuuuu file\uuuu
属性”。此模块是本地安装的python模块。它不像
sys
模块那样链接到解释器

[编辑]

下面是关于名称空间包的一些更好的信息

判断包是否用作命名空间包的主要方法是检查其
\uuuuu file\uuuuu
属性。如果它完全丢失,那么包就是一个名称空间

最后更新 事实证明,
opencafe
不能与最新版本的
virtualenv
一起使用。它仅适用于
15.0.1版
或更早版本。还原回来为我清除了此错误消息


当它与此版本一起安装时,在virtualenv中的包中创建了一个
\uuuuu init\uuuu.pyc
文件。这个字节编译是
\uuu文件\uuuu
获取信息的方式。

它是一个名称空间包,一种可以跨多个目录拆分的奇怪包。由于这种分割机制,它不应该有一个
\uuuuuuuuu文件。

这是因为
opencafe
不是一个普通的python模块。当您打开他们的主模块时,您可以很容易地看到这一点


declare\u名称空间
显式创建一个
名称空间
包。有关更多信息,请访问

多谢各位。我不熟悉名称空间包。在这种情况下,你会说问题确实出在opencafe本身,因为它在自己的一个模块中调用
cafe.\u uu file\u u
?除了在每次安装中处理该行之外,还有什么其他的解决方法吗?请注意,PEP 382被拒绝。@user2357112这是正确的,但我考虑的是“今天的命名空间包”部分。在这种情况下,您会说问题确实出在opencafe本身,因为它在自己的一个模块中调用cafe.\uu file.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?除了在每次安装时都要处理这一行之外,还有其他的工作吗?@gliemezis:有吗?奇怪的我不认为它应该这么做。我同意这很奇怪。这不是最近的更改,但现在给我造成了这个错误。事实证明,OpenCafe尚未更新,无法与较新版本的python以及更具体地说,
virtualenv
的最新版本一起使用。使用早期版本的
virtualenv
安装
opencafe
,特别是
15.0.1
,可以使安装摆脱此错误。