Pylance не удается разрешить импорт библиотек в контейнере разработчика в LinuxPython

Программы на Python
Ответить
Anonymous
 Pylance не удается разрешить импорт библиотек в контейнере разработчика в Linux

Сообщение Anonymous »

У меня есть проект Python в Ubuntu 24.04.1 LTS и DevContainer в VSC с Debian GNU/Linux 11, проблема в том, что Pylance помечает импортstreamlit как стандартный, при этом импорт «streamlit» не может быть разрешен. Если я запускаю приложение из терминала с помощью run myfile.py, оно работает отлично, но запуск отладчика вызывает это исключение:
EDIT Я сбросил образ Docker, и исключение изменилось на более простое:
/usr/bin/python3: No module named streamlit

Это мой devcontainer.json:
{
"build": {"dockerfile": "Dockerfile"},
"customizations": {
"vscode": {
"settings": {},
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance"
]
},
"forwardPorts": [8501],
"runArgs": ["--env-file",".devcontainer/devcontainer.env"]
}
}

Это мой Dockerfile:
FROM python:3.10-bullseye

COPY requirements.txt ./requirements.txt

RUN pip install oscrypto@git+https://github.com/wbond/oscrypto.git@d ... b352e635a8

# COPY src ./src
# WORKDIR /src
RUN pip install --no-cache-dir -r requirements.txt

ENV PYTHONPATH=/workspaces/my_project/src

EXPOSE 8001
CMD ["streamlit", "run", "view/frontend/main.py"]

А это мой файл launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"env": {"PYTHONPATH": "${workspaceFolder}/src"}
},
{
"name": "Python:Streamlit",
"type": "debugpy",
"request": "launch",
"module": "streamlit",
"args": [
"run",
"${file}",
"--server.port",
"8501",
"--server.fileWatcherType",
"poll",
"--server.address",
"0.0.0.0"
],
"cwd": "${workspaceFolder}/src",
"env": {
"PYTHONPATH": "${workspaceFolder}/src",
"PYTHONHOME": "/usr/local/bin"
}
}
]
}

Я перепробовал множество конфигураций, но не нашел ни одной, которая бы работала.
РЕДАКТИРОВАТЬ
У меня есть pylance иstreamlitng, работающие вместе на другом компьютере с VSC Dev Container поверх Windows, и они работают отлично.
Вот что я получаю с сайтом python -m:
sys.path = [
'/workspaces/sacbeh',
'/workspaces/sacbeh/src',
'/usr/local/lib/python310.zip',
'/usr/local/lib/python3.10',
'/usr/local/lib/python3.10/lib-dynload',
'/usr/local/lib/python3.10/site-packages',
]
USER_BASE: '/root/.local' (doesn't exist)
USER_SITE: '/root/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True


Подробнее здесь: https://stackoverflow.com/questions/791 ... r-in-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»