[英]Install/Upgrade Python3.7 inside a Virtual Environment of Python 3.5
[英]Python3.7 venv does not Create Virtual Environment Directory
我正在尝试使用以下方法在 Windows 中创建一个虚拟环境:
python3 -m venv <dir-name>
运行上述命令后,在cmd中查看当前目录的内容时,没有看到venv目录出现。 该命令不会引发任何错误。
这个人好像有同样的问题: Python venv not created virtual environment
但是接受的答案是重新安装python,这对我不起作用。 其他答案建议改为安装 virtualenv,但据我所知,这与 venv 不同,建议用于 python3.3+
有谁知道如何用venv解决这个问题? 我试过 python 3.6 和 3.7
编辑:问题似乎是没有使用在 PATH 中设置的 python.exe 的位置。 它改为使用: C:\\Users\\GSI\\AppData\\Local\\Microsoft\\WindowsApps\\python3.exe
。 我不确定如何修复我的环境变量。 是否需要重启? 我有很多东西在运行,但如果有必要我可以重新启动
Edit2:我被要求发布以下命令输出的屏幕截图。 如您所见,当我仅使用“python3”运行它们时没有输出。 当我使用安装 exe 的完整路径运行命令时,我确实得到了输出:
编辑 3:我在这里找到了一个有用的帖子: https : //superuser.com/questions/1437590/typing-python-on-windows-10-version-1903-command-prompt-opens-microsoft-stor
当您没有安装/添加到 PATH 变量的 python 时,显然在 CMD 中键入“python”会打开 Microsoft 商店并在C:\\Users\\GSI\\AppData\\Local\\Microsoft\\WindowsApps
创建一个python.exe
文件。 我猜我在第一次安装 python 时尝试执行 python 代码,但在添加 PATH 变量之前。
我按照帖子中的说明删除了 python.exe 和 python3.exe 的“应用程序执行别名”。 这摆脱了 WindowsApps 中的 exe 文件(我无法手动删除它们)。
但是,现在当我在 CMD 中键入where python3
时,我得到: INFO: Could not find files for the given pattern(s).
它似乎没有获取我的 PATH 值。 我尝试重新启动计算机但没有运气
它应该可以工作,我对其进行了多次测试(例如: [SO]: PyWin32 (226) 和虚拟环境)。
是的,它们是两种不同的动物:
例子:
e:\\Work\\Dev\\StackOverflow\\q059885771>sopr.bat *** Set shorter prompt to better fit when pasted in StackOverflow (or other) pages *** [prompt]> set PY PYTHONPATH=e:\\Work\\Dev\\Utils\\current [prompt]> dir /b [prompt]> "c:\\Install\\pc064\\Python\\Python\\03.07.06\\python.exe" -c "import sys, venv;print(sys.version);print(venv)" 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] <module 'venv' from 'c:\\\\Install\\\\pc064\\\\Python\\\\Python\\\\03.07.06\\\\lib\\\\venv\\\\__init__.py'> [prompt]> "c:\\Install\\pc064\\Python\\Python\\03.07.06\\python.exe" -m venv usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR ...] venv: error: the following arguments are required: ENV_DIR [prompt]> time<nul The current time is: 21:51:57.12 Enter the new time: [prompt]> "c:\\Install\\pc064\\Python\\Python\\03.07.06\\python.exe" -m venv ".\\venv_dir" [prompt]> echo %errorlevel% 0 [prompt]> time<nul The current time is: 21:52:10.54 Enter the new time: [prompt]> [prompt]> dir /b venv_dir [prompt]> "venv_dir\\Scripts\\python.exe" Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> ^Z [prompt]>
注意事项(注意事项):
where python3
当上述所有检查都通过时,您应该能够创建和使用( venv创建的)虚拟环境。
我查看了问题中添加的URL : [SuperUser]: Typing “python” on Windows 10 (version 1903) command prompt opens Microsoft Store (提到@Update、@TusharGautam、@MattJecha、@Ramhound 很棒的答案,包含有用的信息和资源)。
显然,这是因为来自App execution aliases的 2 App Installer相关项目。 然后我更进一步,还从Microsoft Store安装了Python 3.7 。
两者( App Installer和Python 3.7 )都在“ %USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsApps ”中放置了一些项目(包括可执行文件)。 有趣的是它们的大小为0字节,它们既不是快捷方式也不是符号链接。 我倾向于认为它们实际上并不存在于文件系统中,而是Win显示的某种“模拟条目”,并且表现得好像它们是真实的(与MS在显示.NET 程序集时所做的相同(基本上是.dll文件)作为Windows 资源管理器中的目录)。
在下图中,我选择了 2 个盒装物品作为示例:
检查一个时,另一个会自动取消选中,这是有道理的,因为两者都指向同一个“可执行文件”( python3.exe )。
[prompt]> :: Python3.7 (python3.exe - installed from Microsoft Store) checked [prompt]> dir "c:\\Users\\cfati\\AppData\\Local\\Microsoft\\WindowsApps\\py*" Volume in drive C is SSD0-WIN Volume Serial Number is F2CE-FA29 Directory of c:\\Users\\cfati\\AppData\\Local\\Microsoft\\WindowsApps 20/01/24 12:32 0 python3.exe 20/01/24 12:12 <DIR> PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0 1 File(s) 0 bytes 1 Dir(s) 197,737,488,384 bytes free [prompt]> python3 -c "import sys, os;print(\\"VER: {0:}\\nEXE: {1:}\\nCWD: {2:}\\nPyPATH: {3:}\\".format(sys.version, sys.executable, os.getcwd(), sys.path))" VER: 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 01:54:44) [MSC v.1916 64 bit (AMD64)] EXE: C:\\Users\\cfati\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\python.exe CWD: e:\\Work\\Dev\\StackOverflow\\q059885771 PyPATH: ['', 'e:\\\\Work\\\\Dev\\\\Utils\\\\current', 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\\\\python37.zip', 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\\\\DLLs', 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\\\\lib', 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0', 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\\\\lib\\\\site-packages'] [prompt]> echo %errorlevel% 0 [prompt]> [prompt]> :: App Installer (python3.exe) checked [prompt]> dir "c:\\Users\\cfati\\AppData\\Local\\Microsoft\\WindowsApps\\py*" Volume in drive C is SSD0-WIN Volume Serial Number is F2CE-FA29 Directory of c:\\Users\\cfati\\AppData\\Local\\Microsoft\\WindowsApps 20/01/24 12:35 0 python3.exe 20/01/24 12:12 <DIR> PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0 1 File(s) 0 bytes 1 Dir(s) 197,737,291,776 bytes free [prompt]> python3 -c "import sys, os;print(\\"VER: {0:}\\nEXE: {1:}\\nCWD: {2:}\\nPyPATH: {3:}\\".format(sys.version, sys.executable, os.getcwd(), sys.path))" Access is denied. [prompt]> :: !!! "This app can't run on your PC" popped up !!! [prompt]> echo %errorlevel% 5
注意,可执行文件(“ C:\\Users\\cfati\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\python.exe ”)也是一个“模拟入口”,真正的实际上位于“ %ProgramFiles%\\WindowsApps ”
来自[MS.DevBlogs]:谁将 Python 放入 2019 年 5 月 10 日的 Windows 更新中? (重点是我的):
虽然 Python 继续保持完全独立于操作系统,但每次安装 Windows都将包含
python
和python3
命令,这些命令将您直接带到Python 商店页面。
所以,你去了, python3实际上并不是python3 (当然,也适用于python )。 有趣的是,在你的情况下它“有效”,而在我的情况下它抱怨( ERROR_ACCESS_DENIED )。
结论:
确保您处于管理员模式(Windows+X 按钮 > PowerShell(Admin) > 单击 YES); 这应该带你去
PS C:\WINDOWS\system32>
移至安装 Python 的位置。 然后键入以下内容:
python -m venv C:\<your-existing-project-directory>\<venv-name-u-want-to-use>
VENV 将在 C:\\
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.