Python virtual environment in Matlab
34 ビュー (過去 30 日間)
古いコメントを表示
Hi, i tried to run Pyhon code in Matlab by using a virtual environment (venv). If i run from the virtual environment i get an error "Transport stopped"
>> pe2 = pyenv("Version","C:\pyth_test\test3\Scripts\python")
pe2 =
PythonEnvironment with properties:
Version: "3.8"
Executable: "C:\pyth_test\test3\Scripts\python.EXE"
Library: "C:\Users\birgerv\AppData\Local\Programs\Python\Python38\python38.dll"
Home: "C:\pyth_test\test3"
Status: NotLoaded
ExecutionMode: OutOfProcess
>> py.print("hello world")
Transport stopped.
if i run
>> pe = pyenv('Version','3.8',"ExecutionMode","OutOfProcess")
pe =
PythonEnvironment with properties:
Version: "3.8"
Executable: "C:\Users\birgerv\AppData\Local\Programs\Python\Python38\pythonw.exe"
Library: "C:\Users\birgerv\AppData\Local\Programs\Python\Python38\python38.dll"
Home: "C:\Users\birgerv\AppData\Local\Programs\Python\Python38"
Status: NotLoaded
ExecutionMode: OutOfProcess
>> py.print("hello world")
hello world
>>
it works. I really need to work in a virtual environment, but can not find out why it is not working.
2 件のコメント
Rajeev
2022 年 12 月 20 日
Have you tried this?
pe2 = pyenv("Version", "C:\pyth_test\test3\Scripts\python", "ExecutionMode","OutOfProcess")
回答 (1 件)
Rajeev
2022 年 12 月 21 日
編集済み: Rajeev
2022 年 12 月 21 日
This is a known issue that the development team has been notified of.
In the meantime, I have a temporary workaround for your Python interface in MATLAB:
This workaround assumes that:
- The Python version installation on machine is located at C:\Users\<username>\AppData\Local\Python\python.exe
- The virtual environment is generated under C:\Users\<username>\venvs\myenv\
Please follow these steps to implement the workaround:
1. Set "pyenv" to the base Python installation that the "venv" is used for creating the virtual environment "myenv" in the MATLAB Command Window. For example:
>> pyenv('Version', 'C:\Users\<username>\AppData\Local\Python\python.exe')
2. Add the site-packages directory of the "myenv" virtual environment to the "py.sys.path" in the MATLAB Command Window. For example:
>> p = py.sys.path
>> p.insert(int32(0), 'C:\Users\<username>\venvs\myenv\Lib\site-packages')
The setting of "py.sys.path" must be done at the beginning of every Python Interface session and it should be set to the libraries under the "myenv" virtual environment.
参考
カテゴリ
Help Center および File Exchange で Call Python from MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!