我是使用VirtualEnv的新手,最近尝试使用PyCharm创建一个。在此过程中,PyCharm要求我指定项目位置,应用程序名称和VirtualEnv名称和位置。我怀疑的是,在我指定VirtualEnv的名称和位置后,Django项目文件的位置必须在VirtualEnv中?或者可以将VirtualEnv文件放在与Django项目文件不同的位置?
也许我不理解VirtualEnv的目的。也许,VirtualEnv它只是我的项目,Python版本,Django版本,Pip版本,Jinja2版本和所有其他所需文件的依赖项列表,但不一定是Django应用程序文件(正在开发的网站)
提前致谢。
答案 0 :(得分:2)
雅,我认为你误解了virtualenv
的作用:
https://virtualenv.pypa.io/en/latest/
要解决的基本问题是依赖项和版本之一,以及间接权限。想象一下,您有一个需要LibFoo版本1的应用程序,但另一个应用程序需要版本2.您如何使用这两个应用程序?如果您将所有内容安装到/usr/lib/python2.7/site-packages(或任何平台的标准位置),则很容易在无意中升级不应升级的应用程序的情况下结束。
您的项目文件不一定(并且不应该)virtualenv
文件所在的位置。
virtualenv
将应用程序的python依赖项安装在正在使用的特定virtualenv
的文件夹中。
假设您没有使用virtualenv
,请将依赖项安装到系统的site-packages文件夹中。依赖项未安装在项目目录中,项目目录不在系统的site-packages目录中。
使用virtualenv
并不会改变它,只会更改安装依赖项的位置。
答案 1 :(得分:1)
virtualenv
不仅仅是依赖项列表!它实际上拥有所有模块。可以将virtualenv
视为一个空间,将项目使用的所有包与之前或之后安装的其他包隔离开。是的,可以选择{{1}使用"外部"环境,但这只是一个选择。
拥有virtualenv
的主要目的是使用户能够使用他选择的软件包版本并使其与其余空间隔离。通常,属于特定virtualenv
的包列表会被捕获到文件virtualenv
中。如果您想在其他计算机上运行项目或与他人共享项目,requirements.txt
可以通过requirements.txt
内的pip install -r requirement.txt
轻松重新创建环境