【问题标题】:Can't install python egg due to directory permissions由于目录权限,无法安装 python egg
【发布时间】:2015-07-02 10:02:33
【问题描述】:

我仍然对 python 和 python 鸡蛋很熟悉,如果这是一个愚蠢的问题,我很抱歉。我想知道为什么 easy_install 似乎会为整个服务器安装 egg 以供整个服务器使用,而不是为尝试安装它的帐户在本地安装。

我创建了一个简单的 helloworld 模块/egg,并尝试将它安装在我有帐户的服务器上。但是,该帐户没有 root 访问权限(它是测试人员的帐户)。安装时收到“权限被拒绝”错误消息。安装模块时,它试图安装到 /usr/local/lib/python2.7/site_packages/blah/blah/blah。很明显这是 b/c 我没有 root 权限来写入这个位置。

easy_install hello-1.0-py2.7.egg

在我的笔记本电脑上(我的帐户具有 root 访问权限),我可以运行上面的 cmd 并通过运行“pip freeze”查看模块是否已安装。细微的差别是 Anaconda 正在我的笔记本电脑上运行/安装,并且似乎正在为我进行包管理。

回到我原来的问题; easy_install 如何安装我们自己创建的鸡蛋?我希望/假设它将模块安装在我的测试人员的帐户中,而不是 /usr/local/lib/blha/blah/blah 以供所有用户使用/访问。这是一个不正确的假设吗?如果这是不正确的想法,那么有人将如何在帐户没有 root 访问权限的情况下安装模块/鸡蛋?谢谢。

【问题讨论】:

    标签: python linux easy-install egg


    【解决方案1】:

    对于easy_install or pip as a limited user?,您需要使用--prefix 选项来easy_install 和/或-d-s

    我相信你可以做一些简单的事情:

    easy_install --prefix=$HOME hello-1.0-py2.7.egg
    

    【讨论】:

      【解决方案2】:

      一个选项是使用virtualenv,它允许您为 Python 创建多个虚拟环境,每个环境都有自己的一组库。

      只需创建一个 virtualenv,然后您就可以在其中安装您的模块,而无需对系统 Python 安装进行写访问。

      这里有一个教程:http://simononsoftware.com/virtualenv-tutorial/,不过只需安装 virtualenv 即可:

      $ cd $HOME
      $ virtualenv test
      $ cd test
      $ source bin/activate
      $ easy_install /path/to/hello-1.0-py2.7.egg
      

      包应该安装到~/test/lib/python2.7/site-packages

      【讨论】:

        猜你喜欢
        • 2018-03-06
        • 2014-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        相关资源
        最近更新 更多