【问题标题】:Python import library from tar.gz?从 tar.gz 导入 Python 库?
【发布时间】:2013-08-12 23:05:53
【问题描述】:

我正在开发一个我没有 root 访问权限的盒子。但是,有一个文件夹 /share 可供所有人读取和写入。

我想找到一种方法来放置 python 库,以便每个人都可以访问和使用它们。

我发现我可以将 egg 文件放在 /share/pythonLib 文件夹和 python 脚本中。

import sys
sys.path.append("/share/pythonLib/foo.egg")
import foo

它适用于所有人,但是,我不确定每个库都有鸡蛋版本。例如,我正在尝试安装 BeautifulSoup4 ,但是只有 tar.gz 文件,我不确定是否可以转换为 egg 和 ..etc。

或者!我一开始就错了,确实有一些像下面这样的pythonic魔法:

magicadd /share/pythonLib/foo.tar.gz
import foo

【问题讨论】:

  • 安装包到共享目录如何?如果您使用的是 pip,请尝试pip install -t /share/pythonLib BeautifulSoup4
  • OSError:[Errno13] Permission denied: '/usr/lib/python..../__init__.pyc' 似乎它仍在尝试触摸一些不应该触摸的文件
  • 好像beautifulsoup 已经全局安装在您的系统中。 pip 尝试删除旧的安装。
  • foo.egg 是安装后创建的目录,对吧?那么将 foo.egg 目录添加到 sys.path 与添加安装创建的常规目录有何不同?
  • @falsetru 你用python打开sudo是对的,你可以导入beautifulsoup,但是,以普通用户登录,它说导入错误:没有名为BeautifulSoup4的模块。

标签: python path tar egg


【解决方案1】:

tar.gz 是库的源代码。你应该打开它,你会发现里面有一个setup.py 脚本。运行:

python setup.py install --prefix=/share/pythonLib

这将创建:

/share/pythonLib/lib/python2.7/site-packages/

在您的脚本中将该路径附加到sys.path,一切都会正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多