python package和目录_新手:pycharm使用创建directory和Python package的区别??汗血宝马..._weixin_39656174的博客-程序员宅基地

技术标签: python package和目录  

新手,刚学了2天Python 发现很有趣,有个问题想问下

如图:d.py在ssffe模块module中 c.py在一个名字为tesat的文件夹directory中

临时建立的,名字随便打的别介意。。

在d.py中

print ‘dddd’

在c.py中

from ssffe import d

print ‘cccc’

执行c.py 输出:

dddd

cccc

问题:我想在d.py中引用 c.py

发现用语句 from tesat import c 程序报错

即导入系统中其他目录的Python文件

导入语句怎么写

写了很多仍然报错

directory就是有个目录,pycharm会认为你这个里面可能存放一些你的资源,比如css/js什么的,或者是一些配置文件,里面没有__init__.py,而package是会创建__init__.py的 这个关乎到你的哪些python文件对外是可见的。

或者你可以这么理解,python在文件层面或类名层面上的可见性用__2个下划线表示,对于文件的可见,用package里面定义的__init__.py描述

A是一个你说的Directory

B是一个package 里面有__init__.py

你如果不想在A里面加__init__.py使其变成一个package的话

手动 在代码里 动态加上A的目录到sys.path里

这样python import 模块的时候 会按照sys.path列表顺序加载指定的模块

这样你from API import foo的时候 会找到A下面的python文件

API.py的实现

# -*- coding: utf-8 -*-

def foo():

print "foo called"

没人回答吗?

directory就是个普通目录;package是带有__init__.py文件的目录,这和python的import机制相关,

建议看一下python tutorial第六章Modules(安装后就有,或者上官网,不想看英文的话中文python文档)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39656174/article/details/110764957

智能推荐

利用 Spark DataSource API 实现Rest数据源_浪尖聊大数据-浪尖的博客-程序员宅基地

来源:http://www.jianshu.com/p/6441eaa4d064Spark DataSource API 的提出使得各个数据源按规范实现适配,那么就可以高效的利用Spar...

vue/cli 4.5.4用命令行建设新应用_互零网络的博客-程序员宅基地

1.开始创建项目@ vue / cli 4.5.4安装成功后,如果要在D:\ Code2Vue目录中创建demo2项目,则可以打开资源管理器,输入D:\ Code2Vue目录,然后在资源管理器中在地址栏上输入cmd(此时打开的cmd窗口的打开目录是D:\ Code2Vue目录,如下所示),在打开的cmd窗口模式下输入以下命令: 开始创建一个新项目:# demo2 是项目名称vue creat demo2注意:vue creat命令在哪个目录中运行,将在哪个目录中创建vue。2.如.

[ACL2015]A Dependency-Based Neural Network for Relation Classification_小妖精Fsky的博客-程序员宅基地

哇哇哇...., 很长时间没有写paperNotes了,从今天开始还是应该每天都有啊,每天更的心情就是踏实而美好 这篇文章提到了两个不同NN的特性,作为重点:我放在博文的前面. CNN is suitable for capturing the most useful features in a flat structure. RNN(Recursive) is good at modelin

CTF第六天_、Ange射手的博客-程序员宅基地

[BJDCTF2020]Easy MD5 1提示了后台的查询语句select * from 'admin' where password=md5($pass,true)这里关键是理解md5($pass,true)是个啥东西md5($pass,true)在指定true的时候,是返回的原始 16 字符二进制格式。也就是说会返回这样子的字符串:'or'6\xc9]\x99\xe9!r,\xf9\xedb\x1c'or'6\xc9]\x99\xe9!r,\xf9\xedb\x1c这样的二进制字符

PS学习资源_tangzongyun001的博客-程序员宅基地

[url]http://www.16xx8.com/photoshop/jiaocheng/2018/146098.html[/url][url]https://huke88.com/?sem=baidu&kw=100832[/url][url]http://www.psku8.com/p/26614[/url][url][/url][url]http://tech.163...

随便推点

Android Mms 接收信息流程_weixin_33774308的博客-程序员宅基地

信息的接收工作是由底层来完成的,当有一个 新的信息时底层完成接收后会以Intent的方式来通知上层应用,信息的相关内容也包含在Intent当中,Android所支持的信息Intent都定 义在android.provider.Telephony.Intents里面。短信的接收短信接收,对于上层应用程序来讲就是要处理广播事件SMS_RECEIVED_ACTION,它是由Framewo...

mysql 两表联合排序_mysql多个表联合排序_林忆酒的博客-程序员宅基地

开发过程中遇到个mysql的问题,我有多个表,多个表之间有联系,每个表都有单独的排序。course > course_level > course_unit > course_lesson,这四个表的层级关系就是课程下面很多level,每个level下面有多个unit,每个unit下面有多个lesson,所有表的排序字段均为sort,全部是按照升序排列,如果某个级别sort相同,...

iOS简单实用的AES加密(亲测,能用)_EmulateStep的博客-程序员宅基地

iOS简单实用的AES加密(亲测,能用)1.导入文件,太多了,就不再写了(ps:本人也不会写)网址:https://pan.baidu.com/s/1o86LeRK 提取密码:7igx2.开始代码在需要的controller中导入头文件#import "SecurityUtil.h"#import "GTMBase64.h"//示例的偏移量及key在SecurityUtil.m文件中//这里是

mysql 有没有参数都报错“mysql: unknown option”_weixin_33686714的博客-程序员宅基地

报错:[[email protected] tmp]# mysql -uroot -pmysql: unknown option '--You have new mail in /var/spool/mail/root'[[email protected] tmp]# [[email protected] tmp]# mysql --?mysql: unknown option '--You have new mail in /var...

Symantec11.0.6300升级_weixin_33682790的博客-程序员宅基地

说道symantec,相信大家对此产品多少有了解的,所以呢,今天对此产品不多介绍,主要来实现一下symantec11.0.6300到symantec12.1.1的升级因为我环境内已存在一条Sym性能降低,所以需要单独安装一台symantec服务器(12.1.1),在安装的过程中要保证所有以安装symantec的服务器必需跟服务器通信,这样保证服务器升级...

设计模式之装饰模式学习笔记_墨玉浮白的博客-程序员宅基地

前言顾名思义,就是对已经存在的某些类进行装饰,以此来扩展某些功能。在不改变类文件和使用继承的情况下,动态的扩展一个对象的功能,是继承的替代方案之一。通过创建一个包装对象,即装饰包裹真实的对象。定义动态的给一个对象添加一些额外的职责。结构图角色拆解:1.Component:抽象组件,可以是接口或抽象类,被装饰的最原始的对象2.ConcreteComponent:组件具体实现类,实现Co...

推荐文章

热门文章

相关标签