2

我尝试tox在我拥有的 repo 克隆中运行,但出现此错误:

helton@helton-pc /data/Dropbox/Forks do GitHub/fastkml $ sudo tox
GLOB sdist-make: /data/Dropbox/Forks do GitHub/fastkml/setup.py
py27 create: /data/Dropbox/Forks do GitHub/fastkml/.tox/py27
py27 installdeps: pytest, coverage
ERROR: invocation failed (errno 2), args: [local('/data/Dropbox/Forks do GitHub/fastkml/.tox/py27/bin/pip'), 'install', 'pytest', 'coverage'], cwd: /data/Dropbox/Forks do GitHub/fastkml
Traceback (most recent call last):
  File "/usr/local/bin/tox", line 11, in <module>
    sys.exit(cmdline())
  File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 39, in main
    retcode = Session(config).runcommand()
  File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 375, in runcommand
    return self.subcommand_test()
  File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 526, in subcommand_test
    if self.setupenv(venv):
  File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 434, in setupenv
    status = venv.update(action=action)
  File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 153, in update
    self.hook.tox_testenv_install_deps(action=action, venv=self)
  File "/usr/local/lib/python2.7/dist-packages/pluggy.py", line 724, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pluggy.py", line 338, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pluggy.py", line 333, in <lambda>
    _MultiCall(methods, kwargs, hook.spec_opts).execute()
  File "/usr/local/lib/python2.7/dist-packages/pluggy.py", line 596, in execute
    res = hook_impl.function(*args)
  File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 401, in tox_testenv_install_deps
    venv._install(deps, action=action)
  File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 284, in _install
    action=action)
  File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 257, in run_install_command
    self._pcall(argv, cwd=self.envconfig.config.toxinidir, action=action)
  File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 362, in _pcall
    redirect=redirect, ignore_ret=ignore_ret)
  File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 136, in popen
    stdout=stdout, stderr=STDOUT)
  File "/usr/local/lib/python2.7/dist-packages/tox/session.py", line 224, in _popen
    stdout=stdout, stderr=stderr, env=env)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

但是当我将 repo 克隆到其他位置时,它起作用了:

> cd ~/Desktop
> git clone http://github.com/heltonbiker/fastkml
> cd fastkml
> tox

我正在使用 Linux Mint 17.3 64 位,其中包含 python 2.7.6 和安装了sudo pip install tox.

4

1 回答 1

1

聚会有点晚了,但问题与tox没有直接关系。

问题 - 听起来多么微不足道 - 是您的项目路径包含空格。另一个克隆可能不包含空格,因此没有问题:

ERROR: invocation failed (errno 2), args: [local('/data/Dropbox/Forks do GitHub/[...]

对于 virtualenv 和 pip 等上游工具,这是一个长期存在的问题。不过,大多数这些问题都有望通过 pip 10 的发布得到解决。请参阅pip 不支持目录名称中的空格

我们也在此处以 tox 进行跟踪:https ://github.com/tox-dev/tox/issues/121

从 2.8 开始,我们至少给出了一些更有用的错误,当这种情况发生时:https ://github.com/tox-dev/tox/pull/556

于 2017-09-09T21:42:03.083 回答