我已经从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
我遵循了指定剪辑目录using pyclips and 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版本,但可惜没有任何改变。
sudo进行安装:
....
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: 在删除了与剪辑相关的文件并进行了全新安装之后,我不再收到分配错误。而是我收到一个 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 来设法解决该错误。 现在可以了。
答案 0 :(得分:0)
我是clipspy
模块的作者。我宁愿建议您针对此类问题开放GitHub问题,而不是SO问题。
总的来说,您所遇到的问题表明您正在尝试在肮脏的环境中安装Python模块。例如,通过pip
进行安装可以解决问题,因为您事先运行过make install
并且pip
看到该软件包已经安装。
要从git安装,您可以git clone specific tag或从specific release下载代码。 clipspy
使用标签来推断版本号,因此您会看到警告:
UserWarning:指定的版本('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'