如何在没有root访问权限的情况下在ubuntu上安装像PyYAML这样的安装编译库

时间:2018-02-03 05:46:23

标签: python ubuntu pip pyyaml

我在使用Python模块PyYAML进行安装/编译时非常困难。我在一个受限制的Linux环境中工作(Ubuntu 14.04,我做有root)。我不认为这个问题是PyYAML独有的,因为它是我需要的第一个需要gcc扩展构建的库。

我已经设法apt-get用户文件夹中的以下软件包,因为我无法写入root拥有的文件夹,但如果更有意义,可以尝试其他文件夹。

  • python2.7-dev的
  • python3-dev的

我修改了一些允许我获得部分可操作的python环境的环境变量。 apt-get目标安装为${DEPS_DIR}/apt

export PYTHONHOME="${DEPS_DIR}/apt/usr"
export PYTHONIOENCODING=utf8
export CPATH="${DEPS_DIR}/apt/usr/include/python2.7:${DEPS_DIR}/apt/usr/include"
export PATH="${DEPS_DIR}/apt/usr/local/bin"

我怀疑我错过了一个或多个变量,或者路径输入错误以使其正常工作。对于我认为理所当然的问题,大多数SO搜索都可以sudo安装。

这是我在尝试pip install PyYAML时看到的具体错误:

  

在ext / _yaml.h中包含的文件中:2:0,                    来自ext / _yaml.c:271:/usr/include/yaml.h:633:1:注意:预期'yaml_char_t *'但参数类型为'char *'   yaml_mapping_start_event_initialize(yaml_event_t * event,^   x86_64-linux-gnu-gcc:内部编译器错误:已杀死(程序cc1)   请提交完整的错误报告,如果有预处理来源   适当。看看   说明。错误:命令' x86_64-linux-gnu-gcc'退出失败   状态4

我正在使用pip -V 9.0.1而python -V是2.7.6。我试图在某一点上安装virtualenv和包装器,但似乎并没有像我在笔记本电脑上那样工作。

1 个答案:

答案 0 :(得分:0)

对于一些比较麻烦的python依赖项,通常可以在本地安装其他软件包,以避免一些扩展编译问题。

这两个库都有系统包,避免需要编译:

apt-get python-yaml
apt-get python-websocket