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

标签 python macos

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

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

最佳答案

我强烈建议使用Virtualenv管理您的 Pip 包。

它允许您:

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

最后:

  • 使用简单的命令将整个 Virtualenv 重新安装到不同的计算机(甚至不同的操作系统)。

当然,其中一些功能是由 Pip 提供的,但 Virtualenv 将它们全部放入故障安全环境中。

So i have a couple of modules installed in a virtualenv, but how do I put them in a server location, and can they be read/imported without running a virtualenv on the other machines?

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

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

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

$ mkdir ~/virtualenv
$ python2.x virtualenv.py ~/virtualenv/your_app
$ ~/virtualenv/your_app/bin/pip install -r requirements.txt

virtualenv 路径只是一个建议。您可以从当前机器生成需求文件:

$ pip freeze > requirements.txt

关于python - 如何将 OS X Python 模块(站点包)移动到服务器位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22152323/

相关文章:

c - mac osx 开发环境

python - 如何在 PySpark 中从 RDD 创建数据框?

xcode - 如何确定 OS X dylib 是否与 -flat_namespace 链接

python - 找不到符号 : _BIO_new_CMS

python - 您可以使用 pandas groupby 对行进行分组,通过对列值求和来确定吗?

macos - Zsh 主题在 OSX 上无法正常工作

php - 本地主机上的 MySQL 连接被拒绝

python - FFMPEG + Python - 在 ffmpeg 端跳过不需要的帧

python - 查找两个文件之间的子字符串匹配

python - Django Rest Framework 获取一个查找字段作为超链接列表