首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入praw脚本时的ValueError

导入praw脚本时的ValueError
EN

Stack Overflow用户
提问于 2017-06-06 17:58:07
回答 1查看 180关注 0票数 0

有人能帮我吗?

让我更好地解释自己。我有一个文件夹结构:

代码语言:javascript
复制
praw-test
    jobs
        __init__.py
        redisJob.py
    main.py

如果我直接运行python jobs\redisJob.py,它就能正常工作。

但是,如果我试图在redisJob.py中导入main.py文件,就会出现以下错误:

代码语言:javascript
复制
File ".\main.py", line 13, in <module>
    from jobs.redisJob import DailyJob
  File "D:\git\praw-test\jobs\redisJob.py", line 5, in <module>
    import praw
  File "D:\git\praw-test\env\lib\site-packages\praw\__init__.py", line 14, in <module>
    from .reddit import Reddit  # NOQA
  File "D:\git\praw-test\env\lib\site-packages\praw\reddit.py", line 5, in <module>
    from update_checker import update_check
  File "D:\git\praw-test\env\lib\site-packages\update_checker.py", line 11, in <module>
    import requests
  File "D:\git\praw-test\env\lib\site-packages\requests\__init__.py", line 53, in <module>
    major, minor, patch = urllib3_version
ValueError: not enough values to unpack (expected 3, got 1)

为了确保,import命令是

代码语言:javascript
复制
from jobs.redisJob import DailyJob

我做错什么了吗?

更新我找到了一个解决办法。我只需要在我的urllib3中导入main.py,然后指定正确的版本。

代码语言:javascript
复制
import urllib3
urllib3.__version__ = '1.21.1'
from jobs.redisJob import DailyJob

这三行必须写在我的剧本上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-06 18:11:18

看来您是在不同的环境下导入的。不同的发射技术可以产生不同的进程和外壳;这可能导致环境变量具有一个不同于预期的值。

我不知道足够的SDE细节给您一个明确的解决方案,但我肯定可以推荐一个简单的调试行。在问题行的前面,插入

代码语言:javascript
复制
print urllib3_version

查看在每个启动方法中得到的值。我希望有一些实现细节,比如以某种方式连接的值,或者缺少一些值。

您可以通过检查来解决这一问题:

代码语言:javascript
复制
if len(urllib3_version) == 3:
    major, minor, patch = urllib3_version
else:
    # This will depend on what you see in the single value

您可能需要拆分字符串、为缺少的值提供默认值或进行其他调整。

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

https://stackoverflow.com/questions/44396759

复制
相关文章

相似问题

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