找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 22819|回复: 8

[已解决] 引入第三方Python模块时发生pkg_resources模块缺失的问题

[复制链接]
发表于 2021-2-5 15:49:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Full traceback:
  File "renpy/bootstrap.py", line 326, in bootstrap
    renpy.main.main()
  File "renpy/main.py", line 515, in main
    renpy.game.context().run(node)
  File "game/script.rpy", line 2, in script
    init python:
  File "game/script.rpy", line 2, in script
    init python:
  File "renpy/ast.py", line 922, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "renpy/python.py", line 2218, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/script.rpy", line 3, in <module>
    import win10toast as wt
  File "renpy/loader.py", line 985, in load_module
    exec(code, mod.__dict__)
  File "win10toast/__init__.py", line 15, in <module>
ImportError: No module named pkg_resources

以上是traceback内容,目前在网上搜索到的原因可能是因为pip及setuptools可能在Ren'Py的python2.7中缺失,但本人不清楚应该将setuptools模块放置在哪个目录中。如果有会解决这个情况的望解答。
发表于 2021-2-5 15:53:04 | 显示全部楼层
就放在Ren'Py SDK的lib/python2.7目录里……
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-5 16:24:28 | 显示全部楼层
Full traceback:
  File "renpy/bootstrap.py", line 326, in bootstrap
    renpy.main.main()
  File "renpy/main.py", line 515, in main
    renpy.game.context().run(node)
  File "game/script.rpy", line 2, in script
    init python:
  File "game/script.rpy", line 2, in script
    init python:
  File "renpy/ast.py", line 922, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "renpy/python.py", line 2218, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/script.rpy", line 3, in <module>
    from win10toast import ToastNotifier
  File "renpy/loader.py", line 985, in load_module
    exec(code, mod.__dict__)
  File "win10toast/__init__.py", line 15, in <module>
  File "renpy/loader.py", line 979, in load_module
    code = compile(source, filename, 'exec', renpy.python.old_compile_flags, 1)
SyntaxError: invalid syntax (__init__.py, line 1380)

复制了一份pkg_resources模块到project/game里,现在报了另一个错误
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-5 16:27:17 | 显示全部楼层
被诅咒的章鱼 发表于 2021-2-5 15:53
就放在Ren'Py SDK的lib/python2.7目录里……

分别复制了一份pip和setuptools到2.7目录里,报的是下面那个 invalid syntax的错误
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-5 17:27:24 | 显示全部楼层
更新:
运行Renpy 2.7 sdk中的windows x86 python 2.7进行import win10toast的尝试,发现错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Programming\Renpy\renpy-7.4.2-sdk\lib\python2.7/win10toast/__init__.py", line 15, in <module>
    from pkg_resources import Requirement
  File "D:\Programming\Renpy\renpy-7.4.2-sdk\lib\python2.7/pkg_resources/__init__.py", line 1380
    raise SyntaxError(e) from e

进一步发现Renpy所使用py2.7版本中from pkg_resources import Requirement方法不适用。
单独尝试import pkg_resources成功,from pkg_resources import Requirement不成功
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-5 17:30:08 | 显示全部楼层
更新:
在py2.7中运行from pkg_resources import Environment同样不成功
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-5 17:50:39 | 显示全部楼层
更新:

from pkg_resources import Requirement在py3中是能够成功运行的

根据https://blog.csdn.net/u010456484/article/details/52054241看到其中一种可能的解释:
Python中可能会遇到 cannot import name ‘XXX’ 错误, 其实这有可能出现再模块导入的顺序问题上, 比如:在A文件头执行到语句 from B import XXX ,程序马上就会转到B文件中去,从头到尾顺序寻找B文件中的XXX函数,而A文件就暂停执行,直到把XXX函数复制到内存中,但B文件中的文件头可能也有导入, 如果B文件头中又导入了A文件中的函数,由于XXX函数还没有被复制。所以于A文件因为暂停执行而无法导入,就会出现上面的错误了。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-5 18:02:52 | 显示全部楼层
更新:

目前问题所在最有可能是python2与python3导入模块时产生的差别,具体解决方法仍在寻找
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-2-6 20:52:54 | 显示全部楼层
更新:

安装了原生python 2.7.18后win10toast模块是能够正常安装的,经过自己测试和询问了一圈discord的大佬之后确认是因为RenPy自带的Python 2.7.18缺少很多正常py2.7的库,导致如果想要进行某些库的安装自己需要添加一系列其他的库。

由于PyPI官方也基本停止了对于py2的支持,很多必须的库现在已经找不到了,类似的模块安装最好还是等到未来更新到py3之后再看情况……

评分

参与人数 1干货 +3 收起 理由
BuErShen + 3 感谢分享!

查看全部评分

回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-11-23 00:51 , Processed in 0.114611 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表