我能够运行我在IDE中用瓶子写的网络应用程序。它工作得很好,当我试图将它移动到一个新系统时,它崩溃了(无法找到我在lib文件夹中写的文件)。
如何找到我的lib文件?我发现这个用于瓶子:
bottle.TEMPLATE_PATH.insert(0,'/absolut/path/to/templates/')
我认为这对缺少的.tpl文件有帮助,但是我如何为python做这个呢?我可以在main.py中添加某种python.PATH.insert()
吗?
这是我的目录结构:
DEV
├───.idea
│ ├───inspectionProfiles
│ └───scopes
└───myProject *(Also has a .py file I need)*
├───output
│ └───processed
└───webapp
├───src
│ ├───lib
│ │ └───*(All my .py files I need)*
│ ├───static
│ │ ├───css
│ │ ├───files
│ │ ├───img
│ │ └───js
│ └───views *(All the .tpl files I need)*
│ ├───main
│ ├───popup
│ └───reports
└───main.py *(The file that acesses the .py files)*
相关守则:
import threading
import time
import datetime
import crud_ops
from helper_functions import load_config_file, dt_ona_sum_format
from server import run_bottle
from myProject import ona_sum_tool #THIS LINE HERE
...
def run_queue(col):
while(1):
if not col:
print "Unable to connect to db."
else:
my_limit = 10
processing_cursor = col.queue.find({"status":"processing"}).limit(my_limit)
if not processing_cursor.count():
queued_cursor = col.queue.find({"status":"queued"}).limit(my_limit)
if queued_cursor.count():
for doc in queued_cursor:
print col.queue.update({"_id":doc['_id']},{"$set":{"status":"processing"}} )
# print col.queue.update({"status":"queued"}, {"$set":{"status":"processing"}}).limit(10)
processing_cursor = col.queue.find({"status":"processing"})
if processing_cursor.count():
time.sleep(1)
for doc in processing_cursor:
############################# THIS LINE HERE ######################
new_file_name = ona_sum_tool.run_summary(dt_ona_sum_format(doc['start']), dt_ona_sum_format(doc['end']))
# print "new_file_name: ", new_file_name
old_id = doc['_id']
# print old_id
doc['_id'] = str(new_file_name)
doc['status'] = 'done'
insert_result = col.queue.insert(doc)
if(insert_result):
col.queue.remove({"_id":old_id})
错误:
Traceback (most recent call last):
File "main.py", line 5, in <module>
from lib.threads import ConnectToDBThread, StartBottleThread, ProcessOutputController, \
File "C:\dev\myProject\myProject\webapp\src\lib\threads.py", line 10, in <module>
from myProject import ona_sum_tool
ImportError: No module named onager
答案 0 :(得分:3)
也许您忘记将__init__.py
文件放在lib
文件夹中。 Here's why you need the __init__.py
file:
需要 init .py文件才能使Python将目录视为包含包;这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块。在最简单的情况下, init .py可以只是一个空文件,但它也可以执行包的初始化代码或设置 all 变量,稍后将对此进行描述。 p>