我正在django中开发一个应用程序以将其推送到Heroku,并且尝试将mysql中的数据库迁移到heroku时,我pip安装了mysql-python,并且在尝试运行服务器时遇到了以下错误:>
django.db.utils.OperationalError:(2013年,“与MySQL的连接断开 系统位于“握手:读取初始通信数据包”的服务器,系统 错误:0“)
(我启用了虚拟环境)。
奇怪的是,即使我已经安装了该软件包,该软件包也安装了python。
我发现它与django和我先前安装的几个模块(包括pip)完全无关!
我重新安装了模块,但是现在当我运行服务器时,上面出现了该错误。
如果我从另一个应用程序目录运行服务器,则数据库可以正常运行。
可能与我安装在目录中的东西有关,或者显然被奇怪的软件包覆盖了吗?
这是我的点冻结结果:
certifi==2019.6.16<br>
dj-database-url==0.5.0<br>
Django==2.2.3<br>
django-heroku==0.3.1<br>
gunicorn==19.9.0<br>
mysql-connector-python==8.0.16<br>
mysqlclient==1.4.2.post1<br>
protobuf==3.6.0<br>
psycopg2==2.8.3<br>
PyMySQL==0.9.3<br>
python-decouple==3.1<br>
pytz==2019.1<br>
six==1.12.0<br>
sqlparse==0.3.0<br>
whitenoise==4.1.2<br>
wincertstore==0.2<br>
我现在将删除该项目,并尝试重新构建它,只要我了解,搞砸了该项目的就是我尝试安装mysql-python。
使用缓存收集mysql-python https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip 用于收集软件包的构建轮:mysql-python构建轮 对于mysql-python(setup.py)...错误错误:来自以下位置的完整输出 命令'C:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ python.exe'-u -c '导入设置工具, tokenize; 文件 ='“'”'C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-install-yr8h0ec1 \ mysql-python \ setup.py'“'”'; f = getattr(tokenize, '“”“'open'”'“,打开)(文件); code = f.read()。replace('”'“'\ r \ n'”'“', '“'”'\\ n'“'”'); f.close(); exec(compile(code, file ,'“'”'exec'“'”')))' bdist_wheel -d 'C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-wheel-ywwxryy8'--python-tag cp37:错误:正在运行bdist_wheel正在运行构建正在运行build_py 创建build创建build \ lib.win-amd64-3.7复制 _mysql_exceptions.py-> build \ lib.win-amd64-3.7创建build \ lib.win-amd64-3.7 \ MySQLdb复制MySQLdb__init__.py-> build \ lib.win-amd64-3.7 \ MySQLdb复制MySQLdb \ converters.py-> build \ lib.win-amd64-3.7 \ MySQLdb复制MySQLdb \ connections.py-> build \ lib.win-amd64-3.7 \ MySQLdb复制MySQLdb \ cursors.py-> build \ lib.win-amd64-3.7 \ MySQLdb复制MySQLdb \ release.py-> build \ lib.win-amd64-3.7 \ MySQLdb复制MySQLdb \ times.py-> build \ lib.win-amd64-3.7 \ MySQLdb创建 build \ lib.win-amd64-3.7 \ MySQLdb \ constant复制 MySQLdb \ constants__init __。py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constant复制 MySQLdb \ constants \ CR.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants
复制MySQLdb \ constants \ FIELD_TYPE.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constant复制 MySQLdb \ constants \ ER.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants
复制MySQLdb \ constants \ FLAG.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constant复制 MySQLdb \ constants \ REFRESH.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constant复制 MySQLdb \ constants \ CLIENT.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constant运行build_ext
建立'_mysql'扩展名,建立build \ temp.win-amd64-3.7
创建build \ temp.win-amd64-3.7 \发布C:\ Program Files (x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ HostX86 \ x64 \ cl.exe / c / nologo / Ox / W3 / GL / DNDEBUG / MD -Dversion_info =(1,2,5,'final',1) -D__version __ = 1.2.5“ -IC:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.0.2 \ include“ -IC:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ include -IC:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ include“ -IC:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ include“ “ -IC:\ Program Files(x86)\ Windows Kits \ 10 \ include \ 10.0.10240.0 \ ucrt” “ -IC:\ Program Files(x86)\ Windows Kits \ 8.1 \ include \ shared” “ -IC:\ Program文件(x86)\ Windows Kits \ 8.1 \ include \ um”“ -IC:\ Program 文件(x86)\ Windows Kits \ 8.1 \ include \ winrt“” -IC:\ Program Files (x86)\ Windows Kits \ 8.1 \ include \ cppwinrt“ /Tc_mysql.c /Fobuild\temp.win-amd64-3.7\Release_mysql.obj / Zl _mysql.c
_mysql.c(42):致命错误C1083:不可能包含的所有文件:'config-win.h':无此类文件或目录错误:命令 'C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ HostX86 \ x64 \ cl.exe' 失败,退出状态为2 ----------------------------------------
错误:mysql-python运行setup.py clean的构建轮子失败 对于mysql-python无法构建mysql-python安装收集 软件包:mysql-python正在运行setup.py为mysql-python安装... 错误 错误:命令'C:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ python.exe'的完整输出-u -c'import 设置工具 tokenize; 文件 ='“'”'C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-install-yr8h0ec1 \ mysql-python \ setup.py'“'”'; f = getattr(tokenize, '“”“'open'”'“,打开)(文件); code = f.read()。replace('”'“'\ r \ n'”'“', '“'”'\\ n'“'”'); f.close(); exec(compile(code, file ,'“'”'exec'“'”')))' 安装-记录 'C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-record-dwqliwhp \ install-record.txt' -单一版本-外部管理-编译: 错误:正在运行安装 运行构建 运行build_py 创建版本 创建build \ lib.win-amd64-3.7 复制_mysql_exceptions.py-> build \ lib.win-amd64-3.7 创建build \ lib.win-amd64-3.7 \ MySQLdb 复制MySQLdb__init__.py-> build \ lib.win-amd64-3.7 \ MySQLdb 复制MySQLdb \ converters.py-> build \ lib.win-amd64-3.7 \ MySQLdb 复制MySQLdb \ connections.py-> build \ lib.win-amd64-3.7 \ MySQLdb 复制MySQLdb \ cursors.py-> build \ lib.win-amd64-3.7 \ MySQLdb 复制MySQLdb \ release.py-> build \ lib.win-amd64-3.7 \ MySQLdb 复制MySQLdb \ times.py-> build \ lib.win-amd64-3.7 \ MySQLdb 创建build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants__init __。py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants \ CR.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants \ FIELD_TYPE.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants \ ER.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants \ FLAG.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants \ REFRESH.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 复制MySQLdb \ constants \ CLIENT.py-> build \ lib.win-amd64-3.7 \ MySQLdb \ constants 运行build_ext 建立'_mysql'扩展 创建build \ temp.win-amd64-3.7 创建build \ temp.win-amd64-3.7 \ Release C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ HostX86 \ x64 \ cl.exe / c / nologo / Ox / W3 / GL / DNDEBUG / MD -Dversion_info =(1,2,5,'final',1) -D__version __ = 1.2.5“ -IC:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.0.2 \ include“ -IC:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ include -IC:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ include“ -IC:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ include“ “ -IC:\ Program Files(x86)\ Windows Kits \ 10 \ include \ 10.0.10240.0 \ ucrt” “ -IC:\ Program Files(x86)\ Windows Kits \ 8.1 \ include \ shared” “ -IC:\ Program文件(x86)\ Windows Kits \ 8.1 \ include \ um”“ -IC:\ Program 文件(x86)\ Windows Kits \ 8.1 \ include \ winrt“” -IC:\ Program Files (x86)\ Windows Kits \ 8.1 \ include \ cppwinrt“ /Tc_mysql.c /Fobuild\temp.win-amd64-3.7\Release_mysql.obj / Zl _mysql.c _mysql.c(42):致命错误C1083:可能的非夜间文件包含:'config-win.h':没有此类文件或目录 错误:命令'C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ HostX86 \ x64 \ cl.exe' 失败,退出状态为2 ----------------------------------------错误:命令“'C:\ Applicazioni_Tommaso \ Anaconda3 \ envs \ met3 \ python.exe'-u -c '导入设置工具, tokenize; 文件 ='“'”'C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-install-yr8h0ec1 \ mysql-python \ setup.py'“'”'; f = getattr(tokenize, '“”“'open'”'“,打开)(文件); code = f.read()。replace('”'“'\ r \ n'”'“', '“'”'\\ n'“'”'); f.close(); exec(compile(code, file ,'“'”'exec'“'”')))' 安装-记录 'C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-record-dwqliwhp \ install-record.txt' --single-version-externally-managed --compile“失败,错误代码为1 C:\ Users \ Tommaso \ AppData \ Local \ Temp \ pip-install-yr8h0ec1 \ mysql-python \
答案 0 :(得分:0)
这可能是一个Firewall
问题。确保正在运行MySQL的端口已打开,以允许来自IP
运行所在的App
的入站流量。
答案 1 :(得分:0)
更新:
事实证明,尝试
pip install mysql-python
是完全弄乱了我的项目的东西 我从计算机上卸下了所有已安装的模块: pip,conda,python,django ...
答案 2 :(得分:0)
更新: 错误的命令,就是
pip安装mysql-python
已将我的python默认路径设置为2.7而不是3.7。
要修复此问题,我必须(Windows 10):
Cortana>搜索栏>键入“ env”>更改系统的环境变量>环境变量>选择“路径”> change>
创建并移动到顶部(或简单地移动到顶部)您安装python 3.7的路径。
保存>关闭anaconda。 这使得pyhton及其模块再次工作。 我不得不重新安装pip,现在它又可以工作了。 但是当我打开虚拟环境时,我在mysql中连接的数据库出现了问题。
答案 3 :(得分:0)
已解决
修复了我在previous answer中描述的内容后, 我发现Heroku在管理mysql数据库方面存在一些问题,即使与附加的ClearDB连接也是如此。 因此,我在Postgresql中重建了数据库,因此不再需要mysql python模块。 这使我不再迷恋Django和Heroku之间的先前冲突。