当前位置: 首页 > 面试题库 >

pickle无法导入存在的模块?

杨景山
2023-03-14
问题内容

为什么会发生这种情况?

import window; print "LOADED"; data = cPickle.loads(data)

结果是:

LOADED
Traceback (most recent call last):
...
    import window; print "LOADED"; data = cPickle.loads(data)
exceptions.ImportError: No module named window

如果可以的话import windowcPickle它可以很好地加载模块,但是加载时似乎不起作用。

有关一些可能相关的其他信息:

我保存文件的模块在中project1\MODULE\submodule\main.py。该window模块project1\MODULE\window.pymain.py开始:

import sys
sys.path.append("..\\..")
sys.path.append("..")
...
import window

我试图从中加载的模块在in中project2\project2sub\MODULE\data.py,而不会弄乱sys路径。

MODULE在两种情况下都是相同的:我要加载的模块是project2\project2sub\MODULE\window.py

可能sys.path以某种方式将附加内容弄乱吗?


问题答案:

泡菜取决于模块路径。不管您如何加载模块,如果您不介意的话sys.path,泡菜的加载和保存都应该起作用。但是,如果import module.foo在一个位置执行,则sys.path.append('module'); import foo有两个不同的模块路径:在第一个实例中,模块路径为,module.foo而在第二个实例中,路径为just
foo。这些不相等,这将阻止泡菜正常工作。



 类似资料:
  • 我正在尝试构建一个electron Desctop应用程序,但当我想使用nodejs的文件系统(fs)时,我遇到了错误“UncaughtReferenceError:require未定义”。当我搜索这个问题时,我在您的包中找到了一些提示,如“delete”类型:“module”。json或使用导入,但对我来说没有任何效果。一般来说,我不能使用任何模块,不仅仅是fs,而是我的主模块中的所有模块。js

  • 我正在使用Ubuntu14.04计算机,试图将google.protobuf模块导入到Python2.7中。 我已经试过了 和 没有成功。 在python内部,我得到一个错误,即: “导入错误:没有名为google.protobuf的模块” 编辑1: 对不起,谢谢大家的评论。我还是Ubuntu和StackOverflow的新手。 具体来说,我输入到命令行 并获得反馈 Traceback(最近的调用

  • Python 2.7、Apache Spark 2.1.0、Ubuntu 14.04在pyspark shell中出现以下错误: 解决办法?

  • 我试图从djangotoolbox.fields使用Listfield,但它给我一个错误说: 我做错了什么?

  • 试图将用户模型中的“uuid”作为

  • 问题是: 我的问题是:我做错了什么?我如何修复事情以成功导入BuildingType接口?也许问题出在类路径上,但是我不知道哪个值是合适的。 代码组织: buildingType.java