我正在尝试使用以下方法在Windows中创建虚拟环境:
python3 -m venv <dir-name>
运行上述命令后,当我在cmd中检查当前目录的内容时,看不到venv目录。该命令不会引发任何错误。
此人似乎有相同的问题: Python venv not creating 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
当您没有安装python或将python添加到PATH变量中时,显然在CMD中键入“ python”会打开Microsoft存储并在python.exe
中创建一个C:\Users\GSI\AppData\Local\Microsoft\WindowsApps
文件。我猜我是在初次安装python时但在添加PATH变量之前尝试执行python代码。
我按照帖子中的说明删除了python.exe和python3.exe的“应用程序执行别名”。摆脱了WindowsApps中的exe文件(我无法手动将其删除)。
但是,现在当我在CMD中键入where python3
时,我得到:
INFO: Could not find files for the given pattern(s).
似乎没有选择我的PATH值。我尝试重新启动计算机,但是没有运气
答案 0 :(得分:1)
它应该可以工作,我测试了几次(例如:[SO]: PyWin32 (226) and virtual environments)。
是的,它们是2种不同动物:
示例:
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
通过以上所有检查后,您应该能够创建和使用(创建
我看了问题中添加的 URL :[SuperUser]: Typing “python” on Windows 10 (version 1903) command prompt opens Microsoft store(提到@ Update,@ TusharGautam,@ MattJecha,@ Ramhound很好的答案,其中包含有用的信息和资源)。
显然,这是因为 App执行别名 中有2个与 App Installer 相关的项目。然后,我走得更远,还从 Microsoft Store 安装了 Python 3.7 。
( App Installer 和 Python 3.7 )都将一些项目(包括可执行文件)放在“ %USERPROFILE%\ AppData \ Local \ Microsoft \ WindowsApps ”。有趣的是,它们的大小为 0 个字节,并且它们既不是快捷方式也不是符号链接。我倾向于认为它们实际上并不存在于文件系统中,而是 Win 所显示和表现的某种“模拟项”,好像它们是真实的( MS < / em>在 Windows资源管理器中将 .NET程序集(基本上是 .dll 文件)显示为目录时执行了操作。
在下图中,我选择了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]: Who put Python in the Windows 10 May 2019 Update?(重点是我的):
尽管Python仍然完全独立于操作系统,但Windows的每次安装都将包含
python
和python3
命令,这些命令会将您直接带到Python store page 。
因此,您可以找到 python3 实际上不是 python3 (当然,它适用于 python 好)。有趣的是,在您的情况下,它“起作用”,而在我看来,它抱怨( ERROR_ACCESS_DENIED )。
结论:
答案 1 :(得分:1)
确保您处于管理员模式(Windows + X按钮> PowerShell(Admin)>单击是); 这应该带你去
PS C:\WINDOWS\system32>
移动到安装Python的位置。然后输入以下内容:
python -m venv C:\<your-existing-project-directory>\<venv-name-u-want-to-use>
VENV将在C:\
中创建一个目录