我在Mac OS X上运行Vagrant。我正在使用CentOS 6在虚拟机内编码,我在开发和生产环境中拥有相同版本的Python和Ruby。我有这些限制:
pip install
和gem install
来安装我想要的库,因为系统是通过Puppet管理的,我添加的所有内容都将被删除。yum
包含旧包。我通常找不到最新版本的库。我想将我的库本地放在脚本附近的lib
目录中,并创建一个包含那些冻结版依赖项的RPM。我找不到一种简单的方法来为我的脚本捆绑我的库并将所有内容都推送到我的生产服务器中。我想知道在Python和Ruby中收集依赖项的最简单方法。
我试过了:
virtualenv
(--relocatable
选项)PYTHONPATH
sys.path.append("lib path")
我不知道哪条路是正确的。对于红宝石,有没有办法解决我bundler的问题?我看到捆绑器是用于rails的。它适用于自定义小脚本吗?
我喜欢Node.JS和NPM中的方法;所有包都存储在node_modules
的本地。我安装了nodejs rpm,并在生产服务器上部署了一个带有我的应用程序的文件夹。我想在Ruby和Python中这样做。
答案 0 :(得分:0)
我不知道Node,但你所描述的NPM似乎正是一个虚拟的东西。一旦virtualenv被激活,pip只在virtualenv中安装 - 所以puppet不会干扰。您可以使用pip freeze
将当前包列表写入到requirements.txt文件中,然后使用pip install -r requirements.txt
重新创建整个文件。理想情况下,您将使用puppet进行部署,部署步骤将涉及创建或更新virtualenv,激活它,然后运行该pip命令。
答案 1 :(得分:0)