首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >导入ZODB子系统上的错误,但仅用于Py.Test

导入ZODB子系统上的错误,但仅用于Py.Test
EN

Stack Overflow用户
提问于 2017-09-07 23:20:02
回答 2查看 211关注 0票数 5

使用包含PyTest的文件运行ZODB会带来一个奇怪的问题:可以导入ZODB,但是它的组件FileSystem不能导入。

代码语言:javascript
复制
import ZODB   # That works fine.
import ZODB.FileStorage
ImportError: No module named FileStorage

另一方面,从Python解释器运行相同的代码运行良好。

这是版本PyTest version 3.2.2, Python 2.7.13, and ZODB 5.2.4 --存在指向鸡蛋的ZODB-5.2.4-py2.7.egg/ZODB/FileStorage/init.py, a ZODB.pth,其他模块都没有问题;只有ZODB的任何子模块。没有奇怪的权限错误。经过一个小时的实验和练习Google,我什么也没有得到。

任何解决办法都将不胜感激。

好吧,我把这个掉了是因为它“消失了”。现在是背影了。到目前为止,我知道的是:

  • 这有时会在PyTest中出现,通常运行分析器。我还没找到绕过它的方法。我不知道是什么引起的。我有一些问题,但还没有找到。 文件"/Users/cmerriam/p/platform/zzz/data/ZODB.py",第41行,在导入ZODB.FileStorage # flake8: noqa ImportError: No模块名为FileStorage

我看到的东西:

代码语言:javascript
复制
  * Same issue from PyCharm or command line.
  * No issue running normal code from PyCharm or command line.
  * Once it starts to be an issue, it continues.  Still don't know why.
  * Once it goes away it stays away.
  * My edit configuration has a warning "No Py.Test runner found for current configuration", though 
  /opt/zzz/bin/py.test is in path
  * Seems to have occurred after a reboot.
  * No reason, at all, to suspect FileStorage.
  * This is in my ...../site-packages directory:


        $ ls -l ZODB*
        -rw-rw-r--  1 cmerriam  zzz  23 Oct  6 18:08 ZODB.pth

        ZODB-5.2.4-py2.7.egg:
        total 0
        drwxr-xr-x   9 cmerriam  zzz   306 Oct  6 18:08 EGG-INFO/
        drwxr-xr-x  74 cmerriam  zzz  2516 Oct  9 15:58 ZODB/


        $ cd ZODB-5.2.4-py2.7.egg
        $ tree
           |-EGG-INFO
           |-ZODB
           |---FileStorage
           |---__pycache__
           |---scripts
           |-----manual_tests
           |-----tests
           |---tests

那些不起作用的事情:

  • 卸载和重新安装PyTest
  • 重新启动py魅力检查环境
  • 右键单击项目“干净编译的python文件”
  • 首先运行常规python测试。
  • 在不同目录中从命令行运行pytest
  • 重新启动
  • Pip安装Pip测试转轮
  • 安装新的zzz版本
  • 运行'python setup.py安装‘
  • 将ZODB-5.2.4-py2.7鸡蛋/鸡蛋-info/移至ZODB-5.2.4-py2.7鸡蛋-info

啊哈!一个线索!

系统中存在一个名为zzz.data.zodb.py的模块。我正在研究OS/X,它能保持大小写,但不区分大小写。然而,我的sys.modules中的"zzz.data.zodb“和"zzz.data.ZODB”两种说法都有道理。我们能不能让两个项目对齐是一个错误,但情况如何呢?

我还是想弄清楚到底发生了什么。

EN

回答 2

Stack Overflow用户

发布于 2017-10-16 21:06:32

你试过以下几种方法:

代码语言:javascript
复制
from ZODB import FileStorage
票数 0
EN

Stack Overflow用户

发布于 2017-10-16 23:08:32

尝试类似于在另一个答案中描述的以下内容:

@A. Dickey - 从ZODB导入FileStorage

在评论中描述:

@nes - 也许模块的同名位于sys.path中。尝试查看哪些文件模块使用import ZODB; print(ZODB.__file__)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46106430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档