创建和导入自定义 python 包 - 导入在根目录中不起作用



我是Python的新手,我想创建我的第一个Python库。

我正在使用Python 2.7.5,并运行IDLE接口。

到目前为止,我从文档和相关问题中了解到的是:

  • Python 通过 sys.path 中列出的目录列表来查找脚本和库
  • 包目录必须包含 __init__.py 文件,该文件可以为空
  • 我要创建的模块应该是一个modulename.py文件,代码在包目录中

(资料来源:http://www.johnny-lin.com/cdat_tips/tips_pylang/path.html --- https://docs.python.org/2/tutorial/modules.html)

这是我尝试失败的方法:

  • 创建了个人包目录C:....pythonlibs
  • 已创建子包目录C:....pythonlibspackage
  • 在两个文件夹中创建了__init__.py文件
  • packacge目录中创建了mymodule.py文件

然后在 IDLE 中使用了以下代码:

import sys     
sys.path.append(r'C:....pythonlibs')

第一期:

目前,每次进入 IDLE 我都必须执行此附加。如何才能将目录永久保留在 sys.path 中,就像那里有很多其他目录一样?

然后我尝试导入我的包:

import pythonlibs #fails!! why?      
import pythonlibs.package #fails!! why?       
import package #works     

错误是:ImportError: No module named pythonlibs

第二个问题?

这似乎违反了文档,为什么我不能从根pythonlibs文件夹导入?

带线

sys.path.append(r'C:....pythonlibs')

您正在指示解释器开始在此目录中查找模块(库)。由于此目录不包含pythonlibs文件夹(父目录包含),因此无法导入它。

类似地 - 因为它包含模块package ,它可以导入它。

最新更新