每次开始构建新的Flask应用程序时,创建一个新的"virtualenv"是一个好习惯吗?

ale*_*nco 2 python virtualenv flask

This is how I started my first virtualenv for my Flask app:

$ virtualenv flask_env
$ source flask_env/bin/activate
(flask_env) $ pip install Flask
Run Code Online (Sandbox Code Playgroud)

This is my first time working with this. Is it a good practice to create a new virtualenv each time I start building a new Flask app?

aez*_*ell 9

简短回答:是的.

更长的答案:关于你想如何工作,这是一个个人问题.我想你会发现,当你构建更多的应用程序时,每个应用程序都会有不同的依赖关系.也许对于一个应用程序,您将要使用wtforms.也许对于另一个应用程序,您将使用请求.也许三分之一,你需要flask-sqlalchemy.如果您有自己的virtualenv中的每个应用程序,可以明确管理这些要求.

如果您计划部署到像Heroku这样的东西,您会发现只使用那个应用程序需要的virtualenv就容易得多.

唯一的缺点是,如果您在构建的每个应用程序中使用wtforms之类的东西,并且您决定升级.你必须在每个virtualenv中进行升级.这可能不是那么糟糕,因为您可能想要测试升级如何以不同方式影响每个应用程序.

根据我的个人经验,我为每个应用程序,每个实验,我所做过的每一件事都创造了一个virtualenv.这是一个很好的分区,对我来说,感觉类似于git中的分支(虽然没有所有的合并).

  • `virtualenv`命令有`--system-site-packages`标志,它可能允许你安装在全球所有项目中使用的某些包:http://www.virtualenv.org/en/latest/#the - 系统 - 站点封装选项 (2认同)