如何将OS X Python模块(站点包)移动到服务器位置?

如何将OS X Python模块(站点包)移动到服务器位置?,python,macos,Python,Macos,在我的Mac OS X 10.9 Mavericks机器上,我安装了Python 2.7.6、PySide 1.2.1和mysql Python 1.2.3(所有这些都是使用和Pip安装的)。由于我在安装任何东西之前编辑了以/usr/local/bin开头的/etc/path,所以所有模块都安装在/usr/local/lib/python2.7/site-packages中,并且“which python”返回/usr/local/bin/python。一切顺利 是否可以以某种方式将这些模块复制

在我的Mac OS X 10.9 Mavericks机器上,我安装了Python 2.7.6、PySide 1.2.1和mysql Python 1.2.3(所有这些都是使用和Pip安装的)。由于我在安装任何东西之前编辑了以/usr/local/bin开头的/etc/path,所以所有模块都安装在/usr/local/lib/python2.7/site-packages中,并且“which python”返回/usr/local/bin/python。一切顺利

是否可以以某种方式将这些模块复制到服务器位置,以便其他OS X机器导入(而不是在所有其他OS X机器上本地安装)?

我强烈建议使用来管理您的Pip软件包

它允许您:

  • 将各个项目使用的
    站点包
    分开
  • 忽略操作系统提供的
    站点包
    ,这样在从OS X工作站移动到Linux服务器时不会发生冲突
  • 生成一个
    requirements.txt
    文件,其中包含任何给定项目的Virtualenv中安装的所有库的确切名称和版本(此文件将提交到源存储库)
最后:

  • 只需一个简单的命令,即可将整个Virtualenv重新安装到不同的机器(甚至是不同的操作系统)
诚然,这些特性中的一些是由Pip提供的,但Virtualenv将它们全部放在故障保护环境中


因此,我在virtualenv中安装了几个模块,但是如何将它们放在服务器位置,并且在其他机器上不运行virtualenv的情况下可以读取/导入它们

您提到了一些模块,比如mysql-python,它们需要编译成二进制模块。它们不能在不同的机器之间进行移植

其他模块(仅为Python文件)确实可以复制到另一台机器的
站点包中。但即使是这些,最好还是使用virtualenv,而不是将随机垃圾放入服务器的
站点包
目录

在服务器位置,您应该安装一个干净的virtualenv(当然使用正确版本的Python),然后使用
requirements.txt
文件从源代码安装所有必需的模块:

$ mkdir ~/virtualenv
$ python2.x virtualenv.py ~/virtualenv/your_app
$ ~/virtualenv/your_app/bin/pip install -r requirements.txt
虚拟路径只是一个建议。您可以从当前计算机生成需求文件:

$ pip freeze > requirements.txt

因此,我在virtualenv中安装了几个模块,但是如何将它们放在服务器位置,并且在其他机器上不运行virtualenv的情况下可以读取/导入它们?