CLIPSpy:导入片段时获取“没有模块名称'clips._clips'”

时间:2019-03-06 23:21:51

标签: python linux attributeerror clips clipspy

我已经从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 来设法解决该错误。 现在可以了。

1 个答案:

答案 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'