【问题标题】:Where to manually install python files在哪里手动安装python文件
【发布时间】:2010-08-06 13:41:12
【问题描述】:

我在一个较大的项目中遇到了 setuptools 的问题,其中 python 包必须从几个 debian 包(每个包都包含“主”包的子包)“构建”。因此,我们决定手动安装文件而不是使用“setup.py install”,但我们不确定要使用的位置。我们首先使用了 /usr/share 中的一个目录,该目录已经用于我们安装的其他内容。除了在启动任何应用程序之前我们必须弄乱 PYTHONPATH 之外,这很好用。

在默认的 sys.path 中是否有我们可以安装软件包的地方?我在考虑 /usr/lib/python2.6/dist-packages (当你使用 setuptools 时文件应该结束的地方,不应该吗?),但我有点不愿意写信到这样的地方这与自定义安装脚本......另外,如果 Ubuntu 切换到 2.7,我们是否也必须移动?任何“最佳实践”如何做这样的事情?整个 site-packages/dist-packages 概念的文档记录不足:(

【问题讨论】:

    标签: python ubuntu debian packaging setuptools


    【解决方案1】:

    考虑到事实上,你可以在任何你想要的地方安装它,很难说你需要在哪里安装你的 Python 包。我认为最好的地方是将它们放入 /usr/local/share/YOURPACKAGENAME 以防它不是由 apt-get (aptitude 等)安装的。在任何一种情况下,您都必须在您的 python 脚本周围创建一个小包装器,它将您的包所在的路径插入到“sys.path”变量中。例如,Ubuntu 的“yum”默认将其文件放入“/usr/share/yum-cli”,“/usr/bin/yum”脚本包含以下行:

    #!/usr/bin/python
    
    ...
    
    sys.path.insert(0, '/usr/share/yum-cli')
    try:
        import yummain
        yummain.user_main(sys.argv[1:], exit_code=True)
    except KeyboardInterrupt, e:
        ...
    

    或者,您必须设置 PYTHONPATH 环境变量。这没有什么问题。

    【讨论】:

    • “这并没有错。”不,不是。但它很无聊而且容易出错 ;) 我们现在也使用 sys.path 修改 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多