【问题标题】:Can't install Python 2 `gtop` module in virtual environment可以在虚拟环境中安装 Python 2 `gtop` 模块
【发布时间】:2021-10-24 20:47:07
【问题描述】:

我正在尝试运行用 python 2 编写的benchmarks game repo bencher script,它需要gtop 模块,而不是pygtop 模块。在到处搜索甚至遵循他们的 README.md 之后,我无法弄清楚如何在我的 python 2.7.18 虚拟环境(使用 pyenv 创建和维护)中获得它。

我决定看一下我的系统版本的 python 2.7.18,因为我遵循了这个SO reply 的指南,并且成功下载/安装了包。我的系统版python可以导入模块就好了:

Python 2.7.18 (default, Mar  8 2021, 13:02:45) 
[GCC 9.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtop
>>> gtop.__file__
'/usr/lib/python2.7/dist-packages/gtk-2.0/gtop.so'

所以显然它是作为.so 出现的,我研究过它就像 Ubuntu 的 DLL 库(如果我错了,请纠正我)?

有没有办法让我把它复制到我的相同 python 版本的虚拟环境中?

【问题讨论】:

  • 这里的 python-dbus 似乎也有类似的问题:stackoverflow.com/a/13710008/1581658 是否有帮助将哪些文件复制到您的虚拟环境中?
  • 你是对的,.so 相当于 Linux 中的DLL 它们都被称为共享库。 (它们的工作方式存在一些差异 - 但它们完成相同的任务 - 提供可以由其他正在运行的程序加载的编译代码)
  • @SamBob 感谢您提供链接!我相信类似的东西是解决方案。基本上我一直在做的是将gtk-2.0 目录复制到我的virtualenvs site-packages 目录中。我所做的只是将gtop.so 直接复制到virtualenvs site-packages 目录中,它似乎识别它没有问题。非常奇怪的是,如果它在site-packages 下是独立的,它如何只识别包...

标签: python python-2.7 pyenv


【解决方案1】:

感谢 @SamBob 提出导致答案的 SO 回复。

我一直在错误地将gtk-2.0 目录 复制到我的 virtualenvs site-packages 中,这样:

$HOME/.pyenv/versions/<venv>/lib/python2.7/site-packages/gtk-2.0/gtop.so

我所做的只是将 gtop.so 库复制到 virtualenvs site-packages 中,它似乎识别它没有问题,这样

$HOME/.pyenv/versions/<venv>/lib/python2.7/site-packages/gtop.so

这是我现在的输出:

Python 2.7.18 (default, Oct 18 2021, 23:18:58) 
[GCC 9.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtop
>>> gtop.__file__
'/home/muffin/.pyenv/versions/project-2.7.18/lib/python2.7/site-packages/gtop.so'
>>> 

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 2018-09-26
    • 2018-07-03
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    相关资源
    最近更新 更多