Python中的异常问题

Python中的异常问题,python,mysql,python-2.7,Python,Mysql,Python 2.7,我有一段Python代码,应该在执行时创建MySQL模式。问题是,每当我运行它时,我都会收到一个错误,说raiseexception(e)。异常:[错误2]系统找不到指定的文件 下面是我的代码: from test.db.db import DB from test.config import loggingSetup loggingSetup.initializeLogging("createTest.py") import logging def createSports(db):

我有一段Python代码,应该在执行时创建MySQL模式。问题是,每当我运行它时,我都会收到一个错误,说
raiseexception(e)。异常:[错误2]系统找不到指定的文件

下面是我的代码:

from test.db.db import DB
from test.config import loggingSetup
loggingSetup.initializeLogging("createTest.py")
import logging

def createSports(db):
   sqlFile = "..\\sql\\createSchema.sql"

   db.run(sqlFile)

def create():
   db=DB()

   createSports(db)

def Main():
    create()

if__name__=='__main__':
   try:
      main()
   except Exception, e:
      logging.info(e.message)
      raise Exception(e)
现在我承认,这段代码不完全是我的。我在网上找到了这个,我正在努力修改它,使它符合我的需要。我在python方面的经验充其量是微乎其微的,但您必须从某个地方开始。基本上,我理解if语句是说
if\uuuuu name\uuuu==''\uuuu main\uuuu',然后尝试main()
,但我想我不清楚为什么会抛出这个异常。我知道这段代码已经为其他在类似项目中使用过它的人工作过了,我的语法有什么问题吗

def createSports(db):
   sqlFile = "..\\sql\\createSchema.sql" #file path goes here

在这里,您必须写入您的文件路径。这是一个例子。完成路径并确保此文件存在。

您应该知道“工作目录”和实际目录之间的区别。在运行时,如果不使用绝对路径,代码(不仅是Python,而是其他语言,如C++、java),将把路径视为相对路径。所以问题是它与什么有关?答案是“工作目录”,您可以通过“
os.chdir
”轻松更改工作目录。在这种情况下,需要将其传输到绝对路径:

solution:
(一)

2) 使用完整路径,但请注意转义字符,您应该使用此
sqlFile=r“C:\User\Desktop\Test\sql\createSchema.sql”
,使用“r”表示这是原始sting,不要转义“\”

尝试以下操作:

initialize_logging(__file__) 
这是因为没有找到传递给日志函数的文件文件简而言之,提供当前加载模块的路径


阅读有关文件的更多信息

您是否检查了文件
sql/createSchema.sql
是否存在?请尝试提供
createSchema.sql
@false的完整路径。如果文件确实存在,我已更改代码以提供完整路径。不幸的是,我仍然收到相同的错误。我将完整路径添加到createSchema.sql文件。这将上面的一行更改为
sqlFile=“C:\User\Desktop\Test\sql\createSchema.sql”
,但不幸的是,我得到了与以前相同的错误。您没有将反斜杠加倍(或使用原始字符串)。嗯,解决方案一在添加的所有新行上给我一个
意外缩进
错误。解决方案2给出了与我开始时相同的错误。这快把我逼疯了!谢谢你的帮助!r“C:\User\Desktop\Test\sql\createSchema.sql”如果这不起作用,那么您应该检查您是否有足够的权限访问该文件。Ryan,正确,但我认为这家伙只是希望它起作用,而不是开始在Python中控制路径,您知道吗?顺便说一下,windows路径不区分大小写!我会补充一个解释soon@Jcmoney1010解释得好吗?或者你还需要什么?
initialize_logging(__file__)