我正在尝试使用Django与python机器学习模块与以下要求的api。
原始错误:libcublas.so。当我尝试使用docker-compose up运行项目时,没有这样的文件或目录
得到这个错误。如何设置docker,编辑docker文件和docker-compose文件来解决这个问题。
我使用的是Windows 10, Nvidia 950M GPU。
[+] Running 1/1
- Container tryon_api_web_1 Started 9.3s
Attaching to web_1
web_1 | Watching for file changes with StatReloader
web_1 | Performing system checks...
web_1 |
web_1 | Exception in thread django-main-thread:
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/lib/python3.9/site-packages/cupy/__init__.py", line 16, in <module>
web_1 | from cupy import _core # NOQA
web_1 | File "/usr/local/lib/python3.9/site-packages/cupy/_core/__init__.py", line 1, in <module>
web_1 | from cupy._core import core # NOQA
web_1 | ImportError: libcublas.so.10: cannot open shared object file: No such file or directory
web_1 |
web_1 | The above exception was the direct cause of the following exception:
web_1 |
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/lib/python3.9/threading.py", line 973, in _bootstrap_inner
web_1 | self.run()
web_1 | File "/usr/local/lib/python3.9/threading.py", line 910, in run
web_1 | self._target(*self._args, **self._kwargs)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
web_1 | fn(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 118, in inner_run
web_1 | self.check(display_num_errors=True)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 419, in check
web_1 | all_issues = checks.run_checks(
web_1 | File "/usr/local/lib/python3.9/site-packages/django/core/checks/registry.py", line 76, in run_checks
web_1 | new_errors = check(app_configs=app_configs, databases=databases)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/core/checks/urls.py", line 40, in check_url_namespaces_unique
web_1 | all_namespaces = _load_all_namespaces(resolver)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/core/checks/urls.py", line 57, in _load_all_namespaces
web_1 | url_patterns = getattr(resolver, 'url_patterns', [])
web_1 | File "/usr/local/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
web_1 | res = instance.__dict__[self.name] = self.func(instance)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/urls/resolvers.py", line 598, in url_patterns
web_1 | patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
web_1 | res = instance.__dict__[self.name] = self.func(instance)
web_1 | File "/usr/local/lib/python3.9/site-packages/django/urls/resolvers.py", line 591, in urlconf_module
web_1 | return import_module(self.urlconf_name)
web_1 | File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
web_1 | return _bootstrap._gcd_import(name[level:], package, level)
web_1 | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
web_1 | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
web_1 | File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
web_1 | File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
web_1 | File "<frozen importlib._bootstrap_external>", line 850, in exec_module
web_1 | File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
web_1 | File "/app/tryOn_api/urls.py", line 24, in <module>
web_1 | path('test/', include('tryOn_app.urls'))
web_1 | File "/usr/local/lib/python3.9/site-packages/django/urls/conf.py", line 34, in include
web_1 | urlconf_module = import_module(urlconf_module)
web_1 | File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
web_1 | return _bootstrap._gcd_import(name[level:], package, level)
web_1 | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
web_1 | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
web_1 | File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
web_1 | File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
web_1 | File "<frozen importlib._bootstrap_external>", line 850, in exec_module
web_1 | File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
web_1 | File "/app/tryOn_app/urls.py", line 4, in <module>
web_1 | from . import views
web_1 | File "/app/tryOn_app/views.py", line 12, in <module>
web_1 | from .network_models.afwm import AFWM
web_1 | File "/app/tryOn_app/network_models/afwm.py", line 4, in <module>
web_1 | from .correlation import correlation
web_1 | File "/app/tryOn_app/network_models/correlation/correlation.py", line 5, in <module>
web_1 | import cupy
web_1 | File "/usr/local/lib/python3.9/site-packages/cupy/__init__.py", line 37, in <module>
web_1 | raise ImportError(_msg) from e
web_1 | ImportError: CuPy is not correctly installed.
web_1 |
web_1 | If you are using wheel distribution (cupy-cudaXX), make sure that the version of CuPy you installed matches with the version of CUDA on your host.
web_1 | Also, confirm that only one CuPy package is installed:
web_1 | $ pip freeze
web_1 |
web_1 | If you are building CuPy from source, please check your environment, uninstall CuPy and reinstall it with:
web_1 | $ pip install cupy --no-cache-dir -vvvv
web_1 |
web_1 | Check the Installation Guide for details:
web_1 | https://docs.cupy.dev/en/latest/install.html
web_1 |
web_1 | original error: libcublas.so.10: cannot open shared object file: No such file or directory
让
Django==3.2.3
gunicorn==20.1.0
djangorestframework==3.12.4
fastrlock==0.6
numpy==1.20.3
opencv-contrib-python==4.5.2.52
opencv-python==4.5.2.52
Pillow==8.2.0
pytz==2021.1
sqlparse==0.4.1
typing-extensions==3.10.0.0
cupy-cuda102==9.1.0
--find-links https://download.pytorch.org/whl/torch_stable.html
torch==1.8.1+cu102
torchvision==0.9.1+cu102
torchaudio===0.8.1
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /app
ADD . /app
COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . /app
docker-compose.yml
version: '3'
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
显然,你计划在你的docker容器内使用GPU资源,这是一个有很多资源的热门话题,就在配置GPU支持docker环境之后,你可以做你想做的!这是一个很好的开始!另外,该错误显示GPU(cuda)相关文件不可达。