модуль не найден при импорте SQLAlchemy - PullRequest
0 голосов
/ 07 июня 2019

Использование IntelliJ Ultimate 2019.1 с плагинами Python, но это не было проблемой с любым другим модулем вообще (например, оба местоположения ниже показывают колбу и т. Д.).Обычно я могу Install Package packagename, который добавляет его к /usr/local/lib/python3.7/site-packages.Я не использую виртуальную среду, так как я следую за курсом.

Я установил и переустановил sqlalchemy и flask-sqlalchemy, используя pip3 install packagename Оба отображаются в /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages

BookModel.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import json
from settings import app

db = SQLAlchemy(app)


class Book(db.Model):
    __tablename__ = "books"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)

settings.py

from flask import Flask

app = Flask(__name__)

app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////Users/tomendacott/IdeaPython/BookApp/booksdb.db"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

Ошибка

/usr/local/bin/python3.7 /Users/u/IdeaPython/BookApp/BookModel.py
Traceback (most recent call last):
  File "/Users/u/IdeaPython/BookApp/BookModel.py", line 2, in <module>
    from flask_sqlalchemy import SQLAlchemy
ModuleNotFoundError: No module named 'flask_sqlalchemy'

1 Ответ

0 голосов
/ 11 июня 2019

OP follow up:
Единственный способ заставить этот импорт работать - это вручную скопировать каталоги * из того места, где они были установлены с pip3 в /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages в /usr/local/lib/python3.7/site-packages

Я понимаю,это не идеально, но это работает.Опять же, нет виртуальной среды, как в настоящее время новой для Python и следуя учебнику.

После этого я получил две ошибки при создании базы данных
sqlite3.OperationalError: unable to open database file
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file

ЭтоДля строки требуется 4 косых черты после sqlite (и один L в sqlite)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////Users/username/IdeaPython/BookApp/booksdb.db"

* flask_sqlalchemy
* Flask_SQLAlchemy-2.4.0.dist-info (актуально на время)
*sqlalchemy
* SQLAlchemy-1.3.4.dist-info (текущее время)

...