最近在用python的flask时候发现一点问题,代码组织如下

|-app|-__init__.py|-views.py|-operations.py|-xxx.py
|-run.py

按照python的约定,app作为一个包(package),引入到run.py当中

from app import app

在app/__init__.py中加入需要引入的包

from app import views,operations,xxx

按照这样的结构运行整个项目是ok的

operations.py 写了一些后台任务的逻辑,其中有一些对象是从__init__.py当中引入的

from app import app, db_session, alarm_user, logger

单独运行operations.py来调试一部分代码时候发现了问题

if __name__ == "__main__":#print get_password()#print get_replication()print refresh_instance()

在PyCharm当中运行正常,但在命令行环境下无法运行,会出现如下错误:

#python operations.py
Traceback (most recent call last):File "operations.py", line 3, in <module>from app import app, db_session, alarm_user, logger
ImportError: No module named app

思索之后发现了玄机,PyCharm运行是以项目的根目录作为程序运行环境的。当进入命令行之后,我们运行operations.py时的运行环境实际是在app/目录下,因此解析app包就失败了。
解决方法,扩展python运行环境,把根目录引入运行环境

#!/bin/env python
# -*- coding: utf-8 -*-
import sys
sys.path.append("../")from app import app, db_session, alarm_user, logger

python中包引入遇到的问题相关推荐

  1. python怎么导入包-如何理解Python中包的引入

    Python的from import *和from import *,它们的功能都是将包引入使用,但是它们是怎么执行的以及为什么使用这种语法呢? 从一模块导入全部功能 from import * me ...

  2. python怎么导入模块-Python中如何引入第三方模块

    Python中怎么使用第三方模块? 在Python可以在代码中导入模块,然后就可以使用第三方模块了. import 语句 想使用Python源文件,只需在另一个源文件里执行import语句,语法如下: ...

  3. python中包的循环导入_具有继承的包中的循环导入依赖项

    这是一个可怕的Python循环导入参数,但是,IMHO,您可以有一个优秀的设计,仍然需要循环引用.在 所以,试试这个方法: 在东西.py公司名称:class Thing(Base): def acti ...

  4. python导包的问题_python中包引入遇到的问题

    最近在用python的flask时候发现一点问题,代码组织如下 |-app |-__init__.py |-views.py |-operations.py |-xxx.py |-run.py 按照p ...

  5. Python中包含义及其定义

    对于一个需要实际应用的模块而言,往往会具有很多程序单元,包括变量.函数和类等,如果将整个模块的所有内容都定义在同一个 Python 源文件中,这个文件将会变得非常庞大,显然并不利于模块化开发. 什么是 ...

  6. Python中包(package)的调用方式

    python 是通过module组织代码的,每一个module就是一个python文件,但是modules是通过package来组织的. 如果我们自己写着玩,有的时候就是一两个Python文件在同级目 ...

  7. python中如何引入π_python如何计算π

    展开全部 #coding=utf-8 ''' Created on 2014-11-04 @author: Neo ''' import sys import math from decimal im ...

  8. python从包中导入模块_Python中包,模块导入的方法

    Python中包,模块导入的方法 http://www.cnblogs.com/allenblogs/archive/2011/05/24/2055149.html 1. import modname ...

  9. python中filepath路径怎么写_详解Python中的路径问题

    1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.pa ...

最新文章

  1. Redis客户端JetCache的单机版和集群版的配置
  2. php tp3 操作绑定到类,快速入门 17:操作绑定到类
  3. 在lnmp1.3布置的web服务器上运行thinkphp3.2.3项目pathinfo路径模式
  4. sharding-jdbc整合mybatis
  5. 将Java向前推进? 一个定义。 一年回顾。
  6. 全境封锁服务器维护 2018,全境封锁全域事件2018年8月活动什么时候开始_全域事件怎么玩...
  7. tcp和udp的区别和三次 四次挥握手 http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html...
  8. linux环境 Oracle客户端连接远程Oracle服务端
  9. macos可以升级到指定版本吗_承装承修承试可以跨级升级吗?
  10. python 目录 文件名_python目录与文件名操作
  11. 挖出一个面试刷题的宝藏资源,赶紧收下了~
  12. 《MySQL必知必会》学习笔记——1.书中样例表的生成
  13. 计算机视觉与医疗PPT,图像理解与计算机视觉经典案例.ppt
  14. EL表达式基础语法总结
  15. Date int java_java.util.Calendar.set(int year, int month, int date)方法实例
  16. crm如何做好客户关系管理?
  17. php自动收录导航程序,2020最新自动收录自带查反链导航源码 自动收录导航批量检查反链系统简介程序...
  18. Python 成绩统计
  19. 屏幕分辨率、像素相关概念拾遗
  20. 在运行ros的Python文件时报找不到路径

热门文章

  1. excel首行空不能导入access_Excel数据导入Access,导入不完全解决方法
  2. kotlin设置按钮不可点击_全彩LED显示屏软件空点功能如何设置、使用?
  3. arm体系结构与编程_ARM体系结构基础(1)
  4. json接口文档模板_在.Net Core WebAPI下给Swagger增加导出离线文档功能
  5. python3.7.4安装教程win7_Window10下python3.7 安装与卸载教程图解
  6. activiti Stream之list转map及问题解决
  7. sql和mysql同时配置_jfinal同时配置mssql和mysql混动数据源
  8. 从高频问题透视核心原理(转)
  9. windows查看usb信息命令_Linux dumpe2fs命令:查看文件系统信息
  10. smbus使用 树莓派_Linux控制I2C/SMBus设备