使用 easy_install 安装 isbntools 时出现 SandboxViolation 错误

SandboxViolation error when installing isbntools with easy_install

您好,我遇到了与 Problem solved here simplar 类似的问题,但仅限于我名为 isbntools 的包。如果我尝试制作

  python setup.py install

在提取的 isbntools 的目录中,我得到错误,它找不到一些包含。有没有人试过在 SUSE SLES13.1 上制作 easy_install ? 这里是日志:

     :~> sudo easy_install isbntools
     root's password:
     Searching for isbntools
     Reading https://pypi.python.org/simple/isbntools/
     Best match: isbntools 4.2.4
     Downloading https://pypi.python.org/packages/source/i/isbntools/isbntools-4.2.4.tar.gz#md5=3bee22a3b30d247ca51a5bfadfe5a42d
     Processing isbntools-4.2.4.tar.gz
     Writing /tmp/easy_install-g01nzx/isbntools-4.2.4/setup.cfg
     Running isbntools-4.2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-g01nzx/isbntools-4.2.4/egg-dist-tmp-3i8ma7
     error: Setup script exited with error: SandboxViolation: mkdir('/home/wschrabi/.isbntools', 511) {}

     The package setup script has attempted to modify files on your system
     that are not within the EasyInstall build area, and has been aborted.

     This package cannot be safely installed by EasyInstall, and may not
     support alternate installation locations even if you run its setup
     script by hand.  Please inform the package's author and the EasyInstall
     maintainers to find out if a fix or workaround is available.

添加:我尝试了选项 1) 并遇到以下错误:

      si204alt:/home/wschrabi/__SAMBA/ISBN_PY # easy_install --user isbntools-4.2.4
      Processing isbntools-4.2.4
      Writing /home/wschrabi/samba/ISBN_PY/isbntools-4.2.4/setup.cfg
      Running setup.py -q bdist_egg --dist-dir /home/wschrabi/samba/ISBN_PY/isbntools-4.2.4/egg-dist-tmp-uHR4xe
      Traceback (most recent call last):
        File "/usr/local/bin/easy_install", line 9, in <module>
          load_entry_point('setuptools==16.0', 'console_scripts', 'easy_install')()
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 2243, in main
        File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup
          dist.run_commands()
        File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands
          self.run_command(cmd)
        File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command
          cmd_obj.run()
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 380, in run
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 610, in easy_install
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 659, in install_item
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 842, in install_eggs
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1070, in build_and_install
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1056, in run_setup
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 240, in run_setup
        File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
          self.gen.throw(type, value, traceback)
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 193, in setup_context
        File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
          self.gen.throw(type, value, traceback)
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 164, in save_modules
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 139, in resume
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 152, in save_modules
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 193, in setup_context
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 237, in run_setup
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 267, in run
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 236, in runner
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 46, in _execfile
        File "/home/wschrabi/samba/ISBN_PY/isbntools-4.2.4/setup.py", line 59, in <module>
          CONFRES = pkg_resources.resource_filename('isbntools', CONFFILE)
        NameError: name 'pkg_resources' is not defined

当我执行选项 4) 时 - 它确实有效但出现 sh 错误。

      wschrabi@si204alt:~/__SAMBA/ISBN_PY> ./isbn meta 9999999999 endnote
      sh: symbol lookup error: /lib64/libncurses.so.5: undefined symbol: _nc_outch_sp
      sh: symbol lookup error: /lib64/libncurses.so.5: undefined symbol: _nc_outch_sp
      sh: symbol lookup error: /lib64/libncurses.so.5: undefined symbol: _nc_outch_sp
      sh: symbol lookup error: /lib64/libncurses.so.5: undefined symbol: _nc_outch_sp
      %0 Book
      %T En bok om Albo härad och Albo härads hembygdsförening
      %A Nsa
      %@ 9999999999
      %D 2004
      %I Albo härads hembygdsförening
      wschrabi@si204alt:~/__SAMBA/ISBN_PY>

此外,我按照 No module named pkg_resources 中所述重新安装了设置工具,但现在在 2 台不同的 SUSE PC 上 (!) 出现了相同的 MemoryError:

      lmschrabmair@si204:~> easy_install --user ISBN_PY/isbntools-4.2.4.tar.gz
      Processing isbntools-4.2.4.tar.gz
      Writing /tmp/easy_install-tB6gBa/isbntools-4.2.4/setup.cfg
      Running isbntools-4.2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tB6gBa/isbntools-4.2.4/egg-dist-tmp-2jiuVg
      Traceback (most recent call last):
        File "/usr/local/bin/easy_install", line 9, in <module>
          load_entry_point('setuptools==16.0', 'console_scripts', 'easy_install')()
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 2243, in main
        File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup
          dist.run_commands()
        File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands
          self.run_command(cmd)
        File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command
          cmd_obj.run()
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 380, in run
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 610, in easy_install
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 659, in install_item
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 842, in install_eggs
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1070, in build_and_install
        File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1056, in run_setup
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 240, in run_setup
        File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
          self.gen.throw(type, value, traceback)
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 193, in setup_context
        File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
          self.gen.throw(type, value, traceback)
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 152, in save_modules
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 126, in __exit__
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
        File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 110, in dump
      MemoryError
      lmschrabmair@si204:~>

我认为这是一个新错误:参见 BUG in Setupt tools

isbntools 安装程序尝试在您的用户区域创建一个目录(用于放置配置和缓存文件)。 easy_install 不允许在某些 linux 发行版 上进行系统安装

所以你有这些选择:

  1. 使用 easy_install 和标志 --user 用于用户安装。
  2. 使用 easy_install.
  3. 在虚拟环境中安装 isbntools
  4. 使用 pip install --user isbntools.
  5. 使用 isbntools portable 一个可执行文件,实现了 isbntools 的大部分功能(无缓存,无配置)。您可以在 http://sourceforge.net/projects/isbntools/files/3.3.9/isbntools-3.3.9-linux.amd64.tar.gz/download 获取它(只需从存档中提取文件)。

跟进你的问题:

  1. 对于 1) 我只能说,如果您安装了 setuptools 并收到 "name 'pkg_resources' is not defined" 错误,那么您的 python 出了点问题安装(看看这个 Whosebug 问题 No module named pkg_resources)。
  2. 对于 4) 我没有使用 SUSE 的经验,但该程序已在基于 Debian 的系统中进行了广泛测试...没有错误。无论如何,该程序似乎可以正常工作,前提是可以过滤掉这些烦人的 sh 消息...

为什么不试试选项 2)?