如何编写Python包/模块?

时间:2012-06-19 16:15:40

标签: python windows python-2.7 pythonpath

由于我是新手,我开始通过使用python GUI编写简单的程序来学习python。
每次,当我尝试清除控制台时,我需要定义以下几行代码

import os

def cls():
  os.system('cls')
  print("Console Cleared")

后来我称之为

cls()

现在我厌倦了一次又一次地写上面的代码(每次打开gui窗口时)..
所以,我想创建一个名为cls的模块,以备将来使用以节省我的时间。
最后我将其称为如下

import cls

cls()

有办法做到这一点......

谢谢!

3 个答案:

答案 0 :(得分:3)

好吧,解决方案是创建一个目录来添加模块并将此目录添加到Python pat中。例如,您可以创建一个目录,我们说C:\mypymodules并在其中添加cls.py文件。

现在,让我们将此目录添加到Python路径中。关注these instructions,只需插入C:\mypymodules代替那里提到的目录。现在,打开一个新的命令行窗口并尝试导入模块。

另一种解决方案是使用distutils *。而不是创建自己的模块目录,而是在cls.py文件的同一目录中创建一个名为setup.py的文件,其中包含以下内容:

from distutils.core import setup
setup(name='cls', py_modules=['cls'])

然后,执行它:

> python setup.py install

这可能会将您的模块安装在默认的Python库目录中。实际上,这是打包,管理或python包的方式(或者,更好的方法之一)。

(我实际上并不是在使用Windows,所以有些细节可能会被破坏。尽管如此,我相信一般概念都是一样的。)

*有些人可能会争论使用setuptools,但我认为这对你的案子来说真的太过分了。无论如何,如果您想了解更多信息,请参阅this question

答案 1 :(得分:2)

如果您将cls()函数放在名为cls.py的文件中,并将其放在与调用它的程序相同的目录中,或者放在{{1}中的某个位置在你的系统上,你可以使用你的功能:

PYTHONPATH

这是因为import cls cls.cls() 函数位于cls()模块内(模块名称由文件名决定)。

如果您希望能够cls执行此操作,请执行以下操作:

cls()

答案 2 :(得分:1)

您可以通过使模块跨平台来增加一点点。这是:

import os, sys
def cls():
    if 'win' in sys.paltform:
        os.system('cls')
        print 'Console cleared'
    else:
        os.system('clear')
        print 'Console cleared'

现在,您可以在任何其他脚本中使用它:

from cls import cls
cls()