繁体   English   中英

无法在 Mac OS Catalina 上为 Django 框架点安装 mysql 到 venv

[英]Cant pip-install mysql into venv on Mac OS Catalina for Django framework

亲爱的,我无法将 mysql 或 mysqlclient 安装到我的 venv 中。 每次我尝试时,我都会收到以下错误:

但是,我设法通过使用以下步骤在本地酿造安装它: https://ruddra.com/posts/install-mysqlclient-macos/

它在本地工作,但我仍然无法使用 mysql 或 mysqlclient 创建适当的 venv。 我正在使用 Django 和 PyCharm。 每次我想管理.py runserver 时,它都会要求我提供 mysqlclient。

尝试将 pip 安装 mysql 到我的 venv 时出错:

Processing /Users/michaltarasiewicz/Library/Caches/pip/wheels/3e/4a/d0/506edab38d1bdf574b02c24805fcf7348a327297fcc285431d/mysql-0.0.2-py3-none-any.whl
    Collecting mysqlclient
      Using cached mysqlclient-1.4.6.tar.gz (85 kB)
    Building wheels for collected packages: mysqlclient
      Building wheel for mysqlclient (setup.py) ... error
      ERROR: Command errored out with exit status 1:
       command: /Users/michaltarasiewicz/Projects/Venvs/Django/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-wheel-8ds4c5v5
           cwd: /private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/
      Complete output (30 lines):
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-x86_64-3.8
      creating build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/__init__.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/_exceptions.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/compat.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/connections.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/converters.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/cursors.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/release.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      copying MySQLdb/times.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
      creating build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      copying MySQLdb/constants/CR.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      copying MySQLdb/constants/ER.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
      running build_ext
      building 'MySQLdb._mysql' extension
      creating build/temp.macosx-10.9-x86_64-3.8
      creating build/temp.macosx-10.9-x86_64-3.8/MySQLdb
      gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -Dversion_info=(1,4,6,'final',0) -D__version__=1.4.6 -I/usr/local/Cellar/mysql/8.0.19/include/mysql -I/Users/michaltarasiewicz/Projects/Venvs/Django/include -I/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -c MySQLdb/_mysql.c -o build/temp.macosx-10.9-x86_64-3.8/MySQLdb/_mysql.o
      gcc -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.9-x86_64-3.8/MySQLdb/_mysql.o -L/usr/local/Cellar/mysql/8.0.19/lib -lmysqlclient -lssl -lcrypto -o build/lib.macosx-10.9-x86_64-3.8/MySQLdb/_mysql.cpython-38-darwin.so
      ld: library not found for -lssl
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      error: command 'gcc' failed with exit status 1
      ----------------------------------------
      ERROR: Failed building wheel for mysqlclient
      Running setup.py clean for mysqlclient
    Failed to build mysqlclient
    Installing collected packages: mysqlclient, mysql
        Running setup.py install for mysqlclient ... error
        ERROR: Command errored out with exit status 1:
         command: /Users/michaltarasiewicz/Projects/Venvs/Django/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-record-8j227b7x/install-record.txt --single-version-externally-managed --compile --install-headers /Users/michaltarasiewicz/Projects/Venvs/Django/include/site/python3.8/mysqlclient
             cwd: /private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/
        Complete output (30 lines):
        running install
        running build
        running build_py
        creating build
        creating build/lib.macosx-10.9-x86_64-3.8
        creating build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/__init__.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/_exceptions.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/compat.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/connections.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/converters.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/cursors.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/release.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        copying MySQLdb/times.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb
        creating build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        copying MySQLdb/constants/CR.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        copying MySQLdb/constants/ER.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.9-x86_64-3.8/MySQLdb/constants
        running build_ext
        building 'MySQLdb._mysql' extension
        creating build/temp.macosx-10.9-x86_64-3.8
        creating build/temp.macosx-10.9-x86_64-3.8/MySQLdb
        gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -Dversion_info=(1,4,6,'final',0) -D__version__=1.4.6 -I/usr/local/Cellar/mysql/8.0.19/include/mysql -I/Users/michaltarasiewicz/Projects/Venvs/Django/include -I/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -c MySQLdb/_mysql.c -o build/temp.macosx-10.9-x86_64-3.8/MySQLdb/_mysql.o
        gcc -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.9-x86_64-3.8/MySQLdb/_mysql.o -L/usr/local/Cellar/mysql/8.0.19/lib -lmysqlclient -lssl -lcrypto -o build/lib.macosx-10.9-x86_64-3.8/MySQLdb/_mysql.cpython-38-darwin.so
        ld: library not found for -lssl
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        error: command 'gcc' failed with exit status 1
        ----------------------------------------
    ERROR: Command errored out with exit status 1: /Users/michaltarasiewicz/Projects/Venvs/Django/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-install-v6y4fnwu/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/v5/rxvfdtj967bcph1hj69s0k8m0000gn/T/pip-record-8j227b7x/install-record.txt --single-version-externally-managed --compile --install-headers /Users/michaltarasiewicz/Projects/Venvs/Django/include/site/python3.8/mysqlclient Check the logs for full command output.

您必须安装依赖项:

error: command 'gcc' failed with exit status 1

您至少需要安装 GCC,但请查看项目页面上的完整列表。

在这种情况下,您可以将mysql-connector-c链接回去,然后尝试安装 mysqlclient。 像这样:

brew unlink mysql
brew link --overwrite mysql-connector-c
pip install mysqlclient
brew unlink mysql-connector-c
brew link --overwrite mysql

或者,如果您在系统中安装了 mysqlclient,那么您可以在创建虚拟环境时使用--system-site-packages

python3 -m venv venv_name --system-site-packages

更多信息可以在venv文档中找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM