Tôi muốn biết đường dẫn cài đặt Python ở đâu. Ví dụ:Làm cách nào để có được đường dẫn Python trong Windows?
C: \ Python25
Làm cách nào để có được đường dẫn cài đặt của python?
Tôi muốn biết đường dẫn cài đặt Python ở đâu. Ví dụ:Làm cách nào để có được đường dẫn Python trong Windows?
C: \ Python25
Làm cách nào để có được đường dẫn cài đặt của python?
>>> import os
>>> import sys
>>> os.path.dirname(sys.executable)
'C:\\Python25'
Trong gói sys
, bạn có thể tìm thấy rất nhiều thông tin hữu ích về việc cài đặt của bạn:
import sys
print sys.executable
print sys.exec_prefix
Tôi không chắc chắn điều này sẽ cung cấp cho hệ thống Windows của bạn, nhưng trên máy Mac của tôi executable
điểm đến Python nhị phân và exec_prefix
đến gốc cài đặt.
Bạn cũng có thể thử này để kiểm tra mô-đun sys
của bạn:
import sys
for k,v in sys.__dict__.items():
if not callable(v):
print "%20s: %s" % (k,repr(v))
@GuoH chúng ta có thể làm điều tương tự sử dụng tập tin thực thi? – Patrick
Bạn có thể làm một cái gì đó như 'python -c" nhập sys; in sys.executable "' –
Mở cửa sổ cài đặt của tôi, tôi nhận được những kết quả này:
>>> import sys
>>> sys.executable
'C:\\Python26\\python.exe'
>>> sys.platform
'win32'
>>>
(Bạn cũng có thể tìm trong sys.path
cho các địa điểm hợp lý.)
nhưng làm thế nào chúng ta có thể làm tương tự bằng cách sử dụng tập tin thực thi? – Patrick
Nếu bạn cần biết cài đặt pa th dưới Windows mà không cần bắt đầu trình thông dịch python, hãy xem trong Windows registry.
Mỗi phiên bản Python cài đặt sẽ có một khóa registry trong cả hai:
HKLM\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
HKCU\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
Trong Windows 64-bit, nó sẽ chịu phím Wow6432Node
:
HKLM\SOFTWARE\Wow6432Node\Python\PythonCore\versionnumber\InstallPath
điều này có vẻ là sai trên cửa sổ 7, ít nhất là cho python 2.7 – sharkin
Thông tin nằm ở đâu trên cửa sổ 7? Nếu bạn có một máy tính Windows 7 tiện dụng, bạn có thể thực hiện tìm kiếm đăng ký cho Python và PythonCore không? Và xem bạn có tìm thấy giá trị InstallPath ở đâu đó không. – codeape
Trong các phiên bản 64-bit của cửa sổ (mà bạn có thể đang sử dụng), nó sẽ nằm trong khóa Wow6432Node, IE HKLM \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ versionnumber \ InstallPath –
Nếu bất cứ ai cần phải làm điều này trong C# Tôi đang sử dụng đoạn mã sau:
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");
}
Nếu bạn có python trong biến môi trường của bạn, do đó bạn cũng có thể sử dụng lệnh gõ vào cmd như
>>> where python
Nó sẽ là một trong hai
đường dẫn python 3.6 của tôi trên win10: 'C: \ Users \ YANG.LEI \ AppData \ Local \ Programs \ Python \ Python36-32' –
đúng cho python 3 – danday74
Nếu bạn ở trong một virtualenv thì sao? Điều này sẽ không hoạt động sau đó. – user60561
@ user60561 Nó sẽ cung cấp cho bạn đường dẫn đến tệp thực thi Python của Virtualenv. Tôi không biết một cách để có được python hệ điều hành, trong trường hợp đó, nhưng tôi muốn được quan tâm để biết lý do tại sao bạn cần điều đó, nếu bạn đang chạy từ bên trong một Virtualenv? – elo80ka
Kịch bản của tôi tạo một virtualenv, vì vậy nó sử dụng hệ thống python để làm điều đó. Bạn đã cho tôi suy nghĩ mặc dù, có lẽ đó là không cần thiết ... Tôi sẽ kiểm tra nó ra vào thứ hai, cảm ơn bạn! – user60561