मैं किसी ऐसे व्यक्ति से प्रोग्राम चला रहा हूं जो असुविधा से मदद मांगता है। कार्यक्रम एक वेबसाइट है। सर्वर एंड पायथन और फ्लास्क (मॉड्यूल, http://flask.pocoo.org/) द्वारा लिखा गया है। कार्यक्रम सर्वर पर सफलतापूर्वक चलाया गया है। मुझे क्या करने की ज़रूरत है उस पर कुछ संशोधित करें। चूंकि उत्पादन सर्वर को परीक्षण के लिए अनुमति नहीं है, इसलिए मैंने इसे फ्लास्क के माध्यम से स्थानीय रूप से विकास सर्वर में परीक्षण किया। हालांकि, मैं मूल कार्यक्रम भी नहीं चला सका। नीचे अजगर से है।sqlalchemy.exc.OperationalError: (OperationalError) डेटाबेस फ़ाइल खोलने में असमर्थ कोई नहीं
(venv)[email protected]:~/python/public_html$ python index.wsgi
Traceback (most recent call last): File "index.wsgi", line 6, in from app import app as application
File "/home/kevin/python/public_html/app.py", line 27, in <module>
app = create_app()
File "/home/kevin/python/public_html/app.py", line 12, in create_app
database.init_db()
File "/home/kevin/python/public_html/database.py", line 24, in init_db
Base.metadata.create_all(engine)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 2793, in create_all
tables=tables)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1478, in _run_visitor
with self._optional_conn_ctx_manager(connection) as conn:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1471, in _optional_conn_ctx_manager
with self.contextual_connect() as conn:
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1661, in contextual_connect
self.pool.connect(),
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 272, in connect
return _ConnectionFairy(self).checkout()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 425, in __init__
rec = self._connection_record = pool._do_get()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 857, in _do_get
return self._create_connection()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 225, in _create_connection
return _ConnectionRecord(self)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 318, in __init__
self.connection = self.__connect()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 368, in __connect
connection = self.__pool._creator()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/strategies.py", line 80, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 283, in connect
return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.OperationalError: (OperationalError) unable to open database file None None
config.py फ़ाइल
LOGFILE = '/tmp/ate.log' DEBUG = True TESTING = True THREADED = True DATABASE_URI = 'sqlite:////tmp/ate.db' SECRET_KEY = os.urandom(24)
इसलिए में, मैं एक फ़ोल्डर मेरे उपयोगकर्ता के तहत "tmp" और एक खाली "ate.db" कहा जाता है फ़ाइल बुलाया बनाया। फिर, इसे फिर से चलाया। यह कहा गया है
IOError: [Errno 2] No such file or directory: '/home/kevin/log/ate.log'
फिर, मैंने लॉग फ़ोल्डर और लॉग फ़ाइल बनाई। इसे चलाने के लिए, लेकिन कुछ भी नहीं है अगर यह सफल होता है, वेबसाइट पर http://127.0.0.1:5000
/उपलब्ध होना चाहिए की तरह
(venv)[email protected]:~/python/public_html$ python index.wsgi (venv)[email protected]:~/python/public_html$ python index.wsgi (venv)[email protected]:~/python/public_html$
हुआ। हालांकि, यह काम नहीं किया। क्या कोई जानता है कि इसे क्यों हल किया जाए और कैसे हल किया जाए? कोड ठीक होने चाहिए क्योंकि अब यह ऑनलाइन उपलब्ध है। समस्या एक स्थानीय समस्या होनी चाहिए। आपकी मदद के लिए बहुत बहुत धन्यवाद।
जहां कार्यक्रम
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
engine = None
db_session = None
Base = declarative_base()
def init_engine(uri, **kwards):
global engine
engine = create_engine(uri, **kwards)
return engine
def init_db():
global db_session
db_session = scoped_session(sessionmaker(bind=engine))
# import all modules here that might define models so that
# they will be registered properly on the metadata. Otherwise
# you will have to import them first before calling init_db()
import models
Base.metadata.create_all(engine)
मदद की थी वहाँ 4 '' '//// के बाद करने के लिए है sqlite: 'या सिर्फ 3? इसके अलावा '/ tmp/ate.db' का अर्थ है कि यह'/tmp' में संग्रहीत है और 'tmp' नहीं है। जब तक आप निश्चित रूप से chrooted नहीं हैं। –
इसका मतलब था 4. मुझे लगता है कि यह मेरे स्थानीय पर्यावरण की समस्या है क्योंकि इसे दूसरे कंप्यूटर और सर्वर में चलाया जा सकता है। हालांकि, मुझे नहीं पता कि मुझे अपने लैपटॉप में क्या याद आती है। – user2677756
स्टैक ट्रेस –