簡體   English   中英

virtualenv的跨平台界面

[英]Cross platform interface for virtualenv

我在Windows上開發了我的整個項目(Django,Python),並且那里的所有PaaS都使用Linux。

VirtualEnv on Linux:

VirtualEnv_dir /
                 bin/ activate, activate_this.py
                 include /
                 lib /
                 local /

VirtualEnv of Windows:

VitualEnv_dir /
                Include/
                Lib /
                Scripts/ activate.bat, activate_this.py

因為virtualenv在Windows和Linux中有很多不同。 我如何在PaaS上使用我的windows virtualenv?

編輯:

如果我在Windows上,我需要運行call virtualenv_dir/scripts/activate.bat進入它。 在Linux中,它的source virtualenv_dir/bin/activate

現在,我的repo擁有一個使用Windows生成的virtualenv(使用.bat)。 當我將repo推送到Linux系統時,我應該如何運行它? (bat文件不起作用!)

我正在使用OpenShift PaaS,我想在Git repo上添加一個virtualenv。 我該怎么激活它?

什么是最好的解決方案

除非你使用一些Windows特定的庫; 或者替代Python實現(如IronPython),沒有什么可擔心的。

許多人(包括我自己)使用Windows進行開發並在Linux上部署以進行生產,並為此目的使用virtualenv。 它旨在使您的環境可移植。

你沒有將整個virtualenv推向Linux。

准備好虛擬環境並且代碼正常工作后,您應該凍結應用程序的要求:

pip freeze > requirements.txt

在您的目標操作系統中; 創建一個空的虛擬環境:

virtualenv --no-site-packages prod_env

virtualenv最新版本中, --no-site-packages是默認的。

接下來,使用開發中的需求文件填充環境:

source prod_env/bin/activate
pip install -r requirements.txt

當您更改需求時,只需重新生成requirements.txt文件並在生產環境中運行pip install -r requirements.txt

在某些情況下,您的生產系統無法訪問Internet以下載軟件包,因此pip install技巧不起作用。 對於這些場景,您可以創建自己的私人pypi服務器並將包推送到那里。 通過此路由添加的獎勵是您可以創建並推送私有包並使用常規setuptools實用程序安裝它們。

一旦確定了哪個進程適合您 - 然后在部署腳本中自動執行該過程; 通常與您的源代碼管理系統掛鈎。 有些人更喜歡單獨的發布工程流程(使用發布經理 - 這是一個人,而不是一個程序)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM