Python,部分在网络文件系统上的站点包?
CentOS 7系统,Python 2.7。操作系统安装的python有一个目录Python,部分在网络文件系统上的站点包?,python,Python,CentOS 7系统,Python 2.7。操作系统安装的python有一个目录 /usr/lib/python2.7/site-packages 这就是 python setup.py install 命令将安装一个包。在计算集群上,我想安装一些软件包,以便从该目录引用它们,但它们实际上位于NFS服务的目录中: /usr/common/lib/python2.7/site-packages 也就是说,我不希望必须在每个群集节点上运行setup.py才能在每个节点上进行本地安装,从而
/usr/lib/python2.7/site-packages
这就是
python setup.py install
命令将安装一个包。在计算集群上,我想安装一些软件包,以便从该目录引用它们,但它们实际上位于NFS服务的目录中:
/usr/common/lib/python2.7/site-packages
也就是说,我不希望必须在每个群集节点上运行setup.py才能在每个节点上进行本地安装,从而在每台计算机上复制该包。已在本地安装的软件包不得受到影响,其中一些软件包由操作系统的命令使用。此外,即使网络因某种原因中断,本地网络也必须工作。我不是在尝试设置虚拟环境,我只是在尝试将一组通用的软件包放在不同的目录中,以便操作系统提供的python能够看到它们
我不清楚什么是最好的方法。这似乎是一个常见的问题,必须有一个标准的或首选的方法来做到这一点,如果可能的话,这就是我想要使用的方法
此命令
/usr/bin/python setup.py install --prefix=/usr/common
可能会安装到目标目录中。但是,集群节点上的“python”命令将不知道该包存在,并且没有与共享站点包相对应的“network”python程序
网络安装后,可以为创建的每个文件创建从本地到共享目录的符号链接。这是可以接受的,假设这是足够的
看起来PYTHONPATH环境变量也可能在这里起作用,尽管我不清楚它期望什么
对于“路径”(站点包的完整路径,或仅/usr/common部分。)
编辑:至少对于测试用例来说,这看起来确实可以根据需要工作。上述软件包是使用--prefix安装的。PYTHONPATH以前没有定义
export PYTHONPATH=/usr/common/lib/python2.7/site-packages
python $PATH_TO_START_SCRIPT/start.py
正确运行
谢谢。您正在寻找的是
virtualenv
或pipenv、conda等的可能副本您正在寻找的virtualenv
或pipenv、conda等的可能副本