我在此文件夹中安装了一个名为env的venv:
|-- ScreenScraper
| |-- backend
| |-- docker-compose.yml
| |-- env
| `-- scraper_return
当我激活它时,它的行为类似于此文件夹中另一个名为venv的env :(末尾)
|-- WebScraper
| |-- __pycache__
| | |-- hello.cpython-37.pyc
| | `-- hello.cpython-38.pyc
| |-- byob-profiles-rest-api-docker
| | |-- Dockerfile
| | |-- LICENSE
| | |-- README.md
| | |-- Vagrantfile
| | |-- docker-compose.yml
| | |-- hello_world.py
| | |-- requirements.txt
| | `-- src
| |-- django-markdown-editor
| | |-- LICENSE
| | |-- MANIFEST.in
| | |-- README.rst
| | |-- __screenshot
| | |-- martor
| | |-- martor_demo
| | |-- push.sh
| | |-- requirements.txt
| | |-- runtests.py
| | |-- setup.cfg
| | |-- setup.py
| | `-- venv
例如,pip list
显示了从venv
或pip install -U pip
返回的已安装软件包。再次激活空的Requirement already up-to-date: pip in ./WebScraper/django-markdown-editor/venv/lib/python3.8/site-packages (20.0.2)
。是Bug还是我误会了?
保持健康
正如我们在评论部分中确定的那样,您的问题不是由于错误地设置了虚拟环境,而是值得为将来可能遇到此问题的其他人提到可能的解决方案。
从其他虚拟环境目录调用虚拟环境的问题是将虚拟环境目录从一个地方复制到另一个地方的常见症状。 应该避免!其背后的原因是env
脚本中硬编码的VIRTUAL_ENV
变量。因此,请始终确保该变量指向有效目录。
为了从虚拟环境中列出软件包仅,您需要对[venv_dir]/bin/activate
或--local
使用pip freeze
标志。您可以在文档中找到它:
-l,--local
如果在具有全局访问权限的virtualenv中,请不要列出全局安装的软件包。
关键词是全局访问。 pip继续查找虚拟环境之外的软件包的可能原因可能是pip list
环境变量。核实。点选即可显示PYTHONPATH
中的所有内容。