如何在不使用 sudo 的情况下安装 python-dev?

如何在不使用 sudo 的情况下安装 python-dev?

我正在尝试在我的用户目录(在我没有 sudo 权限的 ubuntu 服务器上)上安装 python 包(scikits.learn),但是我得到了

error: Python.h: No such file or directory

可能是因为我没有安装 python-dev。但是如何在不使用 sudo 的情况下安装 python-dev?或者还有其他简单的方法可以解决 Python.h 的问题吗?

答案1

您可以从源代码编译自己的 python,然后安装您想要的任何模块。 http://docs.python.org/devguide/

答案2

我知道这有点像是巫术(复活旧帖),但我遇到了同样的问题,却找不到答案,所以我分享了我找到的答案……

我的解决方案:

我正在使用 ubuntu 16.04 桌面,没有 sudo,只安装了 python 2.7。我设法设置了一个没有 sudo 的 virtualevn(以下https://stackoverflow.com/questions/9348869/how-to-install-virtualenv-without-using-sudo),当尝试安装 jupyter 时,我发现缺少“错误:Python.h:没有此文件或目录”。

我的解决方案并不干净,但至少局限于virtualenv 和虚拟 python 文件夹是:

  1. 创建测试目录(package_download)
  2. no-sudo@pc:~/package_download$ apt-get 下载 libpython2.7-dev
  3. no-sudo@pc:~/package_download$ apt-get 下载 python-dev
  4. no-sudo@pc:~/package_download$ dpkg -x libpython2.7-dev_2.7.12-1ubuntu0~16.04.1_amd64.deb 。
  5. no-sudo@pc:~/package_download$ dpkg -x python-dev_2.7.11-1_amd64.deb 。

这将下载库并将其提取到您的 package_download 文件夹中。现在到了棘手的部分,因为 pip 不允许我定位此位置,所以我将这些文件添加到它们所属的位置,即 virtualenv 文件夹中...

  1. 将“〜/ package_download / usr / bin”与你内部的 bin 目录合并虚拟 python安装文件夹(用于安装 virtualenv 和创建环境的文件夹),但不要替换任何文件。
  2. 将“〜/ package_download / usr / lib”与您的虚拟 python文件夹。这里没有冲突。
  3. 将“~/package_download/usr/include/python2.7”的内容复制到你的include/python2.7/文件夹中,这里没有冲突。这实际上是最脏的部分,因为我们正在修改虚拟 python(这不需要 sudo,因为是 no-sudo虚拟 python)。
  4. 将文件夹“~/package_download/usr/include/x86_64-linux-gnu”复制到您的include/python2.7/文件夹。复制文件夹这里没有问题...

现在运行你的虚拟环境:

  1. no-sudo@pc:~/running_virtualenv$ 源 bin/activate
  2. (running_virtualenv)no-sudo@pc:~/running_virtualenv$ pip install jupyter
  3. 享受...

如果你发现你的包括/python2.7/是一个符号链接,那么您将 virtualenv 文件夹误认为是虚拟 python 文件夹。(感谢 @andrzej1_1 发现此问题)

相关内容