python - CLIPSpy:导入剪辑时出现“没有模块名称'clips._clips'”
问题描述
我已经从 git 存储库安装了 CLIPSpy,并按照说明安装源文件。然而,在安装并运行 python shell 之后,我得到了这个错误:
`import clips
.../clipspy/clips/__init__.py", line 30, in <module>
from clips.error import CLIPSError
.../clipspy/clips/error.py", line 32, in <module>
from clips.router import Router
.../clipspy/clips/router.py", line 7, in <module>
from clips._clips import lib, ffi
ModuleNotFoundError: No module named 'clips._clips'`
尽管有这个错误,如果我在我的 CLIPSpy 目录之外运行相同的命令,我可以导入剪辑但得到不同的错误。
>>> import clips
>>> env = clips.Environment()
>>> env.assert_string("(test 12)")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Environment' object has no attribute 'assert_string'
我的假设是ModuleNotFoundError可能对AttributeError负责。
操作系统: Arch Linux
git-repo: https ://github.com/noxdafox/clipspy
我遵循了指定剪辑目录的建议,使用 pyclips 和 import clips as a python module来指定剪辑的位置,但它仍然给我同样的错误。
通过pip安装 CLIPSpy给出了“令人满意”的结果:ModuleNotFoundError: No module named 'pygame'
Requirement already satisfied: clipspy in /usr/lib/python3.7/site-packages/clipspy-0.3.2_2_g7dd9ca2-py3.7-linux-x86_64.egg (0.3.2-2-g7dd9ca2)
Requirement already satisfied: cffi>=1.0.0 in /usr/lib/python3.7/site-packages (from clipspy) (1.12.2)
Requirement already satisfied: pycparser in /usr/lib/python3.7/site-packages (from cffi>=1.0.0->clipspy) (2.19)
我多次尝试通过 github 重新安装 clipspy,但同样的问题仍然存在。有趣的部分是我使用 pyclips 作为替代方案有一段时间,它给了我同样的错误。它可能与目录或安装有关,但我不确定它可能是什么。
CLIPSpy的安装过程如下:
制作:
python setup.py build_ext --include-dirs clips_source \
--library-dirs clips_source
/usr/lib/python3.7/site-packages/setuptools/dist.py:484: UserWarning: The version specified ('0.3.2-2-g7dd9ca2') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
"details." % self.metadata.version
running build_ext
generating cffi module 'build/temp.linux-x86_64-3.7/_clips.c'
already up-to-date
我尝试重新安装 setuptools 以查看是否可以获得有效的 dist.py 版本,但是没有任何改变。
须藤制作安装:
....
Installed /usr/lib/python3.7/site-packages/clipspy-0.3.2_2_g7dd9ca2-py3.7-linux-x86_64.egg
Processing dependencies for clipspy===0.3.2-2-g7dd9ca2
Searching for cffi==1.12.2
Best match: cffi 1.12.2
Adding cffi 1.12.2 to easy-install.pth file
Using /usr/lib/python3.7/site-packages
Searching for pycparser==2.19
Best match: pycparser 2.19
Adding pycparser 2.19 to easy-install.pth file
Using /usr/lib/python3.7/site-packages
Finished processing dependencies for clipspy===0.3.2-2-g7dd9ca2
解决方案可能很简单,但我似乎不知道它是什么。
任何有关该做什么或哪里出错的帮助或建议将不胜感激。
编辑 1: 删除与剪辑相关的文件并重新安装后,我不再收到Attribute Error。相反,我得到一个ImportError
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.7/site-packages/clipspy-0.3.1-py3.7-linux-x86_64.egg/clips/__init.py", line 30, in <module> from clips.error import CLIPSError
File "/usr/lib/python3.7/site-packages/clipspy-0.3.1-py3.7-linux-x86_64.egg/clips/error.py", line 32, in <module> from clips.router import Router
File "/usr/lib/python3.7/site-packages/clipspy-0.3.1-py3.7-linux-x86_64.egg/clips/router.py", line 7, in <module> from clips._clips import lib ffi
Import Error: libclips.so: cannot open shared object file: No such file or directory
我已经克隆了包含标签 3.2 的 git 存储库
编辑 2:通过将位于/usr/lib/文件夹中的libclips.so.6文件重命名为libclips.so 来修复错误 现在它可以工作了。
解决方案
我是clipspy
模块的作者。我宁愿建议你为这些类型的问题打开一个 GitHub 问题,而不是一个 SO 问题。
一般来说,您遇到的问题表明您正试图在肮脏的环境中安装 Python 模块。例如,安装 viapip
会在 noop 中解析,因为您make install
事先运行并pip
看到该软件包已安装。
要从 git 安装,您可以 git clone特定标签或从特定版本下载代码。clipspy
使用标签来推断版本号,因此您会看到警告:
用户警告:指定的版本 ('0.3.2-2-g7dd9ca2') 是无效版本,这可能无法在较新版本的 setuptools、pip 和 PyPI 中正常工作。有关详细信息,请参阅 PEP 440。
安装时的一个常见问题clipspy
是旧版本的setuptools
. 您是否尝试过将其更新到更新的版本?
# pip install --upgrade setuptools
最后一点,您是否碰巧在系统中安装了 PyCLIPS?当模块都被调用时,命名空间会发生冲突clips
。这将解释错误回溯:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Environment' object has no attribute 'assert_string'
推荐阅读
- excel - Excel - 识别一张表中的值与不同范围的另一张表中的值
- android - Appcompat-v7:27.1.1 样式错误
- html - 奇怪的 CSS 媒体查询逻辑
- jquery - Fancybox 不能正常工作
- python - 使用 Keras 2.2.0 将顺序模型转换为功能模型
- javascript - 如何使用 javascript 获取所有对象浏览器(window.*)信息
- php - 停止 foreach 循环的麻烦取决于 Promise 解决或拒绝
- angular - 使用带有嵌套对象的模型的角度打字稿错误
- python - ValueError:未知层:CapsuleLayer
- javascript - 如何检查文件夹的访问权限