2013年6月25日更新)在尝试使用pip
安装不同的程序包时,我看到了相同的错误,这表明该程序包可能与该问题无关。
在QNX
上,我在运行pip
时看到以下错误。
# pip install -U catkin_pkg
Downloading/unpacking catkin-pkg
Running setup.py egg_info for package catkin-pkg
Requirement already up-to-date: argparse in /usr/pkg/lib/python2.7/site-packages (from catkin-pkg)
Requirement already up-to-date: docutils in /usr/pkg/lib/python2.7/site-packages (from catkin-pkg)
Requirement already up-to-date: python-dateutil in /usr/pkg/lib/python2.7/site-packages (from catkin-pkg)
Requirement already up-to-date: six in /usr/pkg/lib/python2.7/site-packages (from python-dateutil->catkin-pkg)
Installing collected packages: catkin-pkg
Running setup.py install for catkin-pkg
Error [Errno 89] Function not implemented while executing command /usr/qnx650/host/qnx6/x86/usr/bin/python -c "import setuptools;__file__='/tmp/pip-build-n130s/catkin-pkg/setup.py';exec(compile(open(__file__).read().replace('rn', 'n'), __file__, 'exec'))" install --record /tmp/pip-XhRdBe-record/install-record.txt --single-version-externally-managed
Exception:
Traceback (most recent call last):
File "/usr/pkg/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/basecommand.py", line 139, in main
status = self.run(options, args)
File "/usr/pkg/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/commands/install.py", line 271, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/usr/pkg/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/req.py", line 1185, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/usr/pkg/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/req.py", line 592, in install
cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
File "/usr/pkg/lib/python2.7/site-packages/pip-1.3-py2.7.egg/pip/util.py", line 627, in call_subprocess
cwd=cwd, env=env)
File "/usr/pkg/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/pkg/lib/python2.7/subprocess.py", line 1205, in _execute_child
self.pid = os.fork()
OSError: [Errno 89] Function not implemented
Storing complete log in /root/.pip/pip.log
第一次运行此命令时,未安装相关组件(如argparse
、docutils
、python-dateutil
和six
),但在检查这些必需组件的部分发生了相同的错误。现在我已经一个接一个地安装了它们,这似乎发生在我自己安装的pkg(即catkin_pkg
)。
在python的控制台上,os.fork()
(我认为它是原因的来源)的行为有所不同。因此,我甚至不确定错误是否发生在os.fork()
。
# python
Python 2.7.4 (default, Jun 21 2013, 22:33:48)
[GCC 4.4.2] on qnx6
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.fork()
18804790
>>> 0
sem_wait: Invalid argument
如何避免此错误?非常感谢。
使用QNX
6.5.0 SDP SP1,pip
版本为1.3(它在github上的来源),也是catkin_pkg的来源。
我不知怎么搞明白了。运行pip
WITH -U
选项将安装软件包(安装日志位于底部以供参考)。
但为什么。。。?pip
的帮助信息对我来说似乎没有意义:
$ pip install --help
:
Install Options:
:
-U, --upgrade Upgrade all packages to the newest available version. This process is recursive regardless of whether a dependency is already satisfied.
pip
:安装日志
$ pip install catkin_pkg
Downloading/unpacking catkin-pkg
Running setup.py egg_info for package catkin-pkg
Requirement already satisfied (use --upgrade to upgrade): argparse in /usr/pkg/lib/python2.7/site-packages (from catkin-pkg)
Requirement already satisfied (use --upgrade to upgrade): docutils in /usr/pkg/lib/python2.7/site-packages (from catkin-pkg)
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in /usr/pkg/lib/python2.7/site-packages (from catkin-pkg)
Requirement already satisfied (use --upgrade to upgrade): six in /usr/pkg/lib/python2.7/site-packages (from python-dateutil->catkin-pkg)
Installing collected packages: catkin-pkg
Running setup.py install for catkin-pkg
changing mode of build/scripts-2.7/catkin_create_pkg from 664 to 775
changing mode of build/scripts-2.7/catkin_generate_changelog from 664 to 775
changing mode of build/scripts-2.7/catkin_tag_changelog from 664 to 775
changing mode of build/scripts-2.7/catkin_test_changelog from 664 to 775
changing mode of /usr/pkg/bin/catkin_create_pkg to 775
changing mode of /usr/pkg/bin/catkin_generate_changelog to 775
changing mode of /usr/pkg/bin/catkin_tag_changelog to 775
changing mode of /usr/pkg/bin/catkin_test_changelog to 775
Successfully installed catkin-pkg
Cleaning up...