【问题标题】:import a just-installed package into an existing python session将刚刚安装的包导入现有的 python 会话
【发布时间】:2012-10-31 10:14:37
【问题描述】:

是否可以让 python 会话知道自会话启动以来已easy_installed 的新库?

我有一个运行了几天的控制台,最后得出了(大)结果。我在检查结果时意识到我需要另一个包 (nltk) 进行处理,我安装了它,但会话不能import 它(新的可以)。问题是,我似乎无法保存未处理的结果(picklemarshal 给我关于字符串长度的错误),我真的不想重新运行为期一周的过程。

【问题讨论】:

  • 你可以将数据写入文件,而不需要 pickle/marshal 吗?你在处理什么样的数据?
  • 它们是推文(由tweetstream 提供)——高度嵌套的结构、列表中的字典等,因此保存起来并不简单。
  • 您是否尝试过使用与默认协议不同的协议来使用pickle? (为协议传递 pickle.dump 数字“-1”)
  • @zigg :虽然它不是您所指问题的重复(另一个问题有点复杂),但答案对我有用!谢谢。

标签: python import easy-install


【解决方案1】:

您可以尝试使用imp 模块加载新包:

from imp import *
file, pathname, description = find_module('nltk')
nltk = load_module('nltk', file, pathname, ('.py', 'U', 1))

如果python找不到新安装的模块,你可能需要为find_module指定一个路径参数:

file, pathname, description = find_module('nltk', '/path/to/nltk')

用安装 nltk 的路径替换最后一个参数。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 2020-12-04
    • 2012-10-17
    • 2010-11-28
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多