-
Notifications
You must be signed in to change notification settings - Fork 770
Closed
Description
Environment:
- Ubuntu 24.04.1 LTS
- .NET SDK 8.0.112
- Python 3.12.3
Details:
Trying to run some Python in a C# app. This is my code:
Runtime.PythonDLL = @"/usr/lib/x86_64-linux-gnu/libpython3.12.so";
string pathToVirtualEnv = @"/home/jadan/venvs/venv_mare";
string path = Environment.GetEnvironmentVariable("PATH")!.TrimEnd(Path.PathSeparator);
path = string.IsNullOrEmpty(path) ? pathToVirtualEnv : path + Path.PathSeparator + pathToVirtualEnv;
Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("PYTHONHOME", pathToVirtualEnv, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("PYTHONPATH",
$"{pathToVirtualEnv}/lib/site-packages{Path.PathSeparator}" +
$"{pathToVirtualEnv}{Path.PathSeparator}", EnvironmentVariableTarget.Process);
PythonEngine.PythonPath = PythonEngine.PythonPath + Path.PathSeparator + Environment.GetEnvironmentVariable("PYTHONPATH", EnvironmentVariableTarget.Process);
PythonEngine.PythonHome = pathToVirtualEnv;
PythonEngine.Initialize();
using (Py.GIL())
{
dynamic np = Py.Import("numpy");
}
Unfortunately, this give the following error:
Python path configuration:
PYTHONHOME = '/home/jadan/venvs/venv_mare'
PYTHONPATH = (not set)
program name = 'python3'
isolated = 0
environment = 1
user site = 1
safe_path = 0
import site = 1
is in build tree = 0
stdlib dir = ''
sys._base_executable = '/usr/bin/python3'
sys.base_prefix = ''
sys.base_exec_prefix = ''
sys.platlibdir = 'lib'
sys.executable = '/usr/bin/python3'
sys.prefix = ''
sys.exec_prefix = ''
sys.path = [
'',
'/home/jadan/venvs/venv_mare/lib/python3.12/site-packages',
'/home/jadan/venvs/venv_mare',
'',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Can someone help me?
Metadata
Metadata
Assignees
Labels
No labels