将mysql python函数导入到不同的目录中(ModuleNotFoundError)
将mysql python函数导入到不同的目录中(ModuleNotFoundError)
SOS。我正在将我的SQLite数据库迁移到MySQL,并希望使用/db/connect.py
中的函数在/app/app.py
中与我的应用程序共享MySQL连接。我正在使用一个临时文件来测试连接/app/test.py
,其中包含函数导入。来自/db/connect.py
的连接单独运行成功。然而,即使遵循其他指南,我的/db/connect.py
中的函数也无法正确导入。即使在/db/
目录中添加一个空的__init__.py
文件。
我尝试过的
这里是我尝试过的一小部分这里,这里,这里和这里(以及stackoverflow上此主题的所有其他问题,例如这里,这里,这里,这里等)。
/db/test.py (临时文件,带有import函数)
导入/db/connect.py > sql_db_connection()。
from db.connect import sql_db_connection import db def get_all(): conn = sql_db_connection() cursor = conn.cursor() cursor.execute("select * from posts") result = cursor.fetchall() for x in result: print(x)
错误(运行test.py时出现错误)
Traceback (most recent call last): File "/Users///app/test.py", line 1, in from db.connect import sql_db_connection ModuleNotFoundError: No module named 'db'
/db/connect.py(mysql连接函数)
import sshtunnel import MySQLdb import os from dotenv import load_dotenv # Load all env vars load_dotenv() def sql_db_connection(): sshtunnel.SSH_TIMEOUT = 5.0 sshtunnel.TUNNEL_TIMEOUT = 5.0 with sshtunnel.SSHTunnelForwarder( ('ssh.pythonanywhere.com'), ssh_username=os.getenv("REMOTE_DB_SSH_USERNAME"), ssh_password=os.getenv("REMOTE_SSH_PASSWORD"), remote_bind_address=( os.getenv("REMOTE_BIND_ADDRESS"), 3306) ) as tunnel: conn = MySQLdb.connect( user=os.getenv("REMOTE_DB_SSH_USERNAME"), passwd=os.getenv("REMOTE_DB_PASSWORD"), host='0.0.0.0', port=tunnel.local_bind_port, db=os.getenv("REMOTE_DB_NAME"), ) print('Connected!') return conn sql_db_connection()
树
. ├── Dockerfile ├── README.md ├── __pycache__ │ ├── app.cpython-310.pyc │ ├── app.cpython-39.pyc │ ├── config.cpython-39.pyc │ ├── wsgi.cpython-38.pyc │ └── wsgi.cpython-39.pyc ├── app │ ├── Dockerfile │ ├── __init__.py │ ├── __pycache__ │ ├── app.py │ ├── config.py │ ├── public │ ├── requirements.txt │ ├── templates │ ├── test.py │ └── wsgi.py ├── db │ ├── Dockerfile │ ├── README.md │ ├── __init__.py │ ├── __pycache__ │ ├── connect.py │ ├── database.db │ ├── dump.sql │ ├── init_db.py │ ├── mysql_dump.sql │ ├── schema.sql │ └── schema_mysql.sql ├── docker-compose.yml ├── features.md ├── images ├── requirements.txt ├── setup.py ├── venv │ ├── bin │ ├── include │ ├── lib │ ├── man │ └── pyvenv.cfg └── wsgi.py
admin 更改状态以发布 2023年5月23日