题
好吧,我想用web2py的,因为它是相当不错.. 我只需要改变工作目录到我所有的模块/库/应用程序是这样我就可以使用它们的目录。我希望能够当我使用web2py的接口/应用程序导入我的真正的程序。我需要做的,而不是把我所有的应用程序和东西web2py的文件夹里面......我想给我的程序的web前端没有把该程序在web2py的文件夹,这个..很抱歉,如果这是很难理解的。
其他提示
在任何多线程Python程序(而不是只Python)的则不应使用os.chdir和你不应该当你有一个以上的线程运行变化sys.path中。因为它会影响其他线程它是不是安全。此外你不应该sys.path.append()在一个循环中,因为它可能会爆炸。
所有web框架是多线程的,并请求在一个循环中执行。一些web框架不允许你安装/无需重新启动Web服务器未安装应用程序,因此,如果os.chdir / sys.path.append只在启动时执行的话就没有问题。
在web2py中,我们希望能够安装/卸载应用程序而无需重新启动Web服务器。我们希望应用程序是非常动态(例如基于提供的HTTP请求信息定义模型)。我们希望每个应用程序都有自己的模型文件夹,我们希望的应用,因此,如果两个应用程序需要不同版本的同一模块的,他们不相互冲突,所以我们提供的API这样做(request.folder之间完全隔离,local_import)。
您仍然可以使用正常的os.chdir和sys.path.append,但你应该做的外螺纹(这是不是一个web2py的具体问题)。您可以使用导入任何你喜欢,你会在任何其他Python程序。
我强烈建议移动此讨论到的web2py邮件列表。
我不得不做这事。我有我想从我的控制器使用几个模块。如果要能够使用代码驻留在控制器中的模块目录中,可以使用:
# use this in your controller code
impname = local_import('module_in_modules', reload=True)
# reload true will ensure that it will re load whenever
# there are changes to the module
杰