我是一个完全新手,所以忍受我;我用包完成的唯一一件事是让anaconda为我安装numpy,然后我将它(和其他一些)导入脚本。这是我第一次玩自己的包。
目标:我有一堆.py脚本,我想收集到一个包中;我想要我习惯的行为;我有python程序住在我的计算机的某个地方(无论有人选择保存项目)并且不必担心路径(因为这是一种蠕虫,我也不理解),我想键入,mypackage,“import mypackage为mp“(就像导入numpy as np一样),然后进入比赛。
请注意,我不知道numpy或任何正确的包是如何构造的,所以这个类比可能会产生误导?但我想要的是导入多个.py脚本中定义的函数,这些函数都保存在一个文件夹中(为方便起见,我也称之为mypackage)。
我按照这个video中的示例,我写了一个模块并将其放在anaconda3 \ Lib \ site-packages \中,并且能够编写一个python程序,它位于一些随机的其他文件夹中,能够然后导入并运行模块。
但是,再一次,这只允许我访问与单个.py脚本/模块相对应的函数。我希望能够使用我的所有脚本/模块添加一个文件夹(我假设使用地址anaconda3 \ Lib \ site-packages),然后能够导入与所有这些模块相对应的包。
我尝试了一些solutions,但还没有运气。我真的不明白 init .py和路径 .py脚本(具体来说,我不明白他们是否需要在\ site-packages \或\站点包\ mypackage中)。特别是,我遵循了这个solution因为他拼出来了,但我不能让python在\ site-packages \ mypackage中导入任何内容。
编辑:我按照this视频中的步骤操作,它获得了我想要的结果。
但是,并非所有用于导入视频中的包的方式都能帮助我。这是我能够在python脚本中成功使用的代码,例如,在我的桌面上,并且能够按如下方式访问包:
import mypackage.demo # mypackage is the folder, demo is the python script
mypackage.demo.demoprint() # demoprint() is the function defined in demo.py
> Now in the demo file!
del mypackage
from mypackage.demo import demoprint
demoprint()
> Now in the demo file!
del demoprint
import mypackage.demo as mp
mp.demoprint()
> Now in the demo file!
del mp
# Call subpackage functions
from mypackage.subpackage.subdemo import subdemoprint
subdemoprint()
> Now in the subdemo package and file!
del subdemoprint
from mypackage.subpackage import subdemo as sd
sd.subdemoprint()
> Now in the subdemo package and file!
del sd