社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  geckos  »  全部回复
回复总数  1
5 年前
回复了 geckos 创建的主题 » 在理解为什么python需要虚拟环境的原因时挣扎

虚拟环境使您能够按项目封装依赖项。

巨蟒没有 node_modules 等效。当你用 pip 它转到您的 站点包 文件夹。要查找此文件夹,可以运行 python -m site 它将打印出它将在其中搜索包的文件夹。

Fedora 29示例:

➜  ~ python -m site
sys.path = [
    '/home/geckos',
    '/usr/lib/python27.zip',
    '/usr/lib64/python2.7',
    '/usr/lib64/python2.7/plat-linux2',
    '/usr/lib64/python2.7/lib-tk',
    '/usr/lib64/python2.7/lib-old',
    '/usr/lib64/python2.7/lib-dynload',
    '/usr/lib64/python2.7/site-packages',
    '/usr/lib/python2.7/site-packages',
]
USER_BASE: '/home/geckos/.local' (exists)
USER_SITE: '/home/geckos/.local/lib/python2.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

PIP与包管理器

如果不使用虚拟环境,则可能最终会与操作系统python软件包并排安装软件包,这就是危险所在。包可能被覆盖,事情会很快变得混乱。例如,使用pip安装flask,然后尝试使用package manager安装jinja2,现在移除jinja2并断开flask,或者更新系统,jinja2得到更新,但flask没有更新。或者更简单地说,使用包管理器安装一些东西,然后使用pip删除,知道包管理器处于中断状态。

因此,我们总是使用虚拟环境,甚至按项目分离虚拟环境。

创建和维护虚拟环境

没有什么能阻止您将虚拟环境维护在与项目相同的文件夹中。这样你也会有同样的 伐木 你拥有的节点模块。你可以用

virtualenv <SOME_FOLDER> 对于python 2 或 python3 -m venv <SOME_FOLDER> 对于python 3

我见过的惯例

如果您将虚拟环境保留为项目的子文件夹,我通常会调用 env venv

其他的选择是把所有的东西都放在你家里的同一个文件夹里,我一直在用 ~/.venv/<PROJECT>

皮彭夫

最后还有一个选择,我更喜欢纯的 匹普 . pipenv是一个为您自动管理虚拟环境的工具。感觉更接近 纱线 有更多的特点

为项目创建虚拟环境 pipenv --tree pipenv --two 在项目文件夹中。它将创建和管理虚拟环境,并将依赖项写入pipenv文件。它还支持开发包,我真的认为值得尝试。这是文件: https://docs.pipenv.org/en/latest/

我希望这有帮助,问候