diff options
Diffstat (limited to 'library/python')
-rw-r--r-- | library/python/runtime_py3/main/main.c | 4 | ||||
-rw-r--r-- | library/python/runtime_py3/main/venv.cpp | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/library/python/runtime_py3/main/main.c b/library/python/runtime_py3/main/main.c index 3159800615..c2c90a3cf6 100644 --- a/library/python/runtime_py3/main/main.c +++ b/library/python/runtime_py3/main/main.c @@ -7,6 +7,7 @@ void Py_InitArgcArgv(int argc, wchar_t **argv); char* GetPyMain(); +int IsYaIdeVenv(); static const char* env_entry_point = "Y_PYTHON_ENTRY_POINT"; static const char* env_bytes_warning = "Y_PYTHON_BYTES_WARNING"; @@ -74,6 +75,9 @@ static int RunModule(const char *modname) } static int pymain(int argc, char** argv) { + if (IsYaIdeVenv()) { + return Py_BytesMain(argc, argv); + } PyStatus status = _PyRuntime_Initialize(); if (PyStatus_Exception(status)) { Py_ExitStatusException(status); diff --git a/library/python/runtime_py3/main/venv.cpp b/library/python/runtime_py3/main/venv.cpp new file mode 100644 index 0000000000..b26611b918 --- /dev/null +++ b/library/python/runtime_py3/main/venv.cpp @@ -0,0 +1,6 @@ +#include <library/cpp/resource/resource.h> + +extern "C" int IsYaIdeVenv() { + TString dummy; + return NResource::FindExact("YA_IDE_VENV", &dummy); +} |