我想在Windows上找到我的python安装路径。例如:
C:\Python25
如何找到安装了python的位置?
>>> import os
>>> import sys
>>> os.path.dirname(sys.executable)
'C:\\Python25'
如果你在virtualenv里面呢?那就不行了。
@user60561应该为您提供virtualenv的python可执行文件的路径。在这种情况下,我不知道如何获得操作系统python,但如果您在virtualenv中运行,我想知道为什么您需要它?
我的脚本创建了一个virtualenv,所以它使用系统python来实现这一点。不过,你让我想了想,也许这不是必要的……我周一去看看,谢谢!
如果您需要知道Windows下安装的路径而不启动python解释器,请查看Windows注册表。
每个已安装的python版本都将在以下任一项中具有注册表项:
HKLM\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
HKCU\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
在64位窗口中,它将位于Wow6432Node键下:
HKLM\SOFTWARE\Wow6432Node\Python\PythonCore\versionnumber\InstallPath
这在Windows7上似乎是错误的,至少对于Python2.7来说是错误的。
Windows7上的信息在哪里?如果你手头有一台Windows7计算机,你能在注册表中搜索python和pythoncore吗?看看是否在某个地方找到了installPath值。
在64位版本的Windows(您可能正在使用)中,它将位于wow6432node项下,即‌&8203;stallpath中的hklmsoftwarewow6432nodepythonpythoncoreversionnumber
请用"piksel bitworks"的评论更新您的答案。这对我很有用。
这是一种很好的方法,但要使用它,需要知道当前的Python版本。我仍然在寻找一种好的方法来检测用于NSI安装程序的python路径。
如果它是64位Windows上的32位python,那么它在wow6432node下。还请注意,32位应用程序通常无法检测注册表中的64位(非ww6432node)键,因为注册表重定向(这意味着32位应用程序不会检测到64位python安装)。
嗯。我没注意安装,他们把它从根上放了下来。为什么很难理解程序并将其置于正确的层次结构中?
它可能是
C:Python 36
C:users(您登录的用户)appdatalocalprogramspythonpython36
Win10上python 3.6的路径:C:\Users\YANG.LEI\AppData\Local\Programs\Python\Python36-32。
适用于python 3
可以在安装期间自由定制python路径。我有几台机器甚至没有C:驱动器。此外,本地应用程序数据不一定在C:\Users下。
如果环境变量中有python,那么可以在cmd中使用以下命令:
>>> where python
或用于Unix环境
>>> which python
命令行图像
谢谢您!正是我需要的:)
首先,在StackOverflow上收到了感谢。很高兴它解决了你在Viliuskukanauskas的问题
非常感谢!!
也许是最好的答案,这么简单!
在我的Windows安装中,我得到以下结果:
>>> import sys
>>> sys.executable
'C:\\Python26\\python.exe'
>>> sys.platform
'win32'
>>>
(您也可以在sys.path中查找合理的位置。)
但是,我们如何使用批处理文件做到这一点呢?
@帕特里克,我想江户十一〔一〕行
在sys包中,您可以找到许多关于安装的有用信息:
import sys
print sys.executable
print sys.exec_prefix
我不确定这会给你的Windows系统带来什么,但是在我的Macexecutable上,指向的是python二进制文件和exec_prefix指向的是安装根目录。
您也可以尝试检查您的sys模块:
import sys
for k,v in sys.__dict__.items():
if not callable(v):
print"%20s: %s" % (k,repr(v))
@郭,我们能用批处理文件做同样的事情吗?
你可以做一些像python -c"import sys; print sys.executable"这样的事情。
如果在成功安装后需要路径,请首先打开命令并键入Python还是Python-i
它将为您打开交互式shell,然后键入
import sys
sys.executable
按Enter键,您将获得安装python的路径…
这个解决方案的问题是,我运行的是python 2.7,并希望升级到3.6。我安装了3.6,但当我在命令行上键入python时,我仍然在从旧的2.7运行。
您可以搜索"您帐户的环境变量"。如果您已经在路径中添加了python,它将在您的环境变量帐户中显示为"path"。
但你几乎总能在"C:users\%useru name%appdatalocalprogramspythonpythonu版本"
"appdata"文件夹可能被隐藏,使其在工具栏的"视图"部分可见。
要知道python安装在哪里,可以在cmd.exe中执行where python。
(这篇文章似乎没有回答这个问题。请编辑您的答案,或将其作为问题的评论发布)。
@?联合国????Q?P它实际上是一个答案,甚至可能是正确的。我不太熟悉Windows,但实际上似乎有一个where命令,它应该与unix上的which类似。
@另一个节点:答案的质量很差。如果你理解作者想说的话,你可以自由编辑和修改。
如果有人需要在C中执行此操作,我将使用以下代码:
static string GetPythonExecutablePath(int major = 3)
{
var software ="SOFTWARE";
var key = Registry.CurrentUser.OpenSubKey(software);
if (key == null)
key = Registry.LocalMachine.OpenSubKey(software);
if (key == null)
return null;
var pythonCoreKey = key.OpenSubKey(@"Python\PythonCore");
if (pythonCoreKey == null)
pythonCoreKey = key.OpenSubKey(@"Wow6432Node\Python\PythonCore");
if (pythonCoreKey == null)
return null;
var pythonVersionRegex = new Regex("^" + major + @"\.(\d+)-(\d+)$");
var targetVersion = pythonCoreKey.GetSubKeyNames().
Select(n => pythonVersionRegex.Match(n)).
Where(m => m.Success).
OrderByDescending(m => int.Parse(m.Groups[1].Value)).
ThenByDescending(m => int.Parse(m.Groups[2].Value)).
Select(m => m.Groups[0].Value).First();
var installPathKey = pythonCoreKey.OpenSubKey(targetVersion + @"\InstallPath");
if (installPathKey == null)
return null;
return (string)installPathKey.GetValue("ExecutablePath");
}
对于大多数用户来说,HKCU和HKLM都不存在吗?这似乎会错过全局安装的python实例。
是的,好像我在那里制造了一个bug。
转到c:usersuserappdatalocalprogramspythonpython36如果没有的话用Windows+^r打开控制台然后键入cmd并按Enter键键入python如果安装在本地文件中,它将从中显示其版本键入以下内容导入操作系统导入系统os.path.dirname(sys.executable)
这对我很有用:C:\Users\Your_user_name\AppData\Local\Programs\Python。
我目前安装的python version是3.7.0。
希望这有帮助!
我安装了2和3,发现3也有同样的问题。幸运的是,在windows路径下输入path让我可以找到它的安装位置。当我安装python时,路径是一个选项,我只是忘记了。如果在安装python 3时没有选择设置路径,那么很可能不会工作——除非在安装时手动更新了路径。在我的例子中,它位于c:program filespython37python.exe
如果你还是卡住了或者你得到了这个
C:\\\Users\\
ame of your\\\AppData\\\Local\\\Programs\\\Python\\\Python36
只需执行此操作,将2替换为1
C:\Users\akshay\AppData\Local\Programs\Python\Python36