鱼C论坛

 找回密码
 立即注册
查看: 2939|回复: 11

怎么模拟pip下载后的模块的效果

[复制链接]
发表于 2020-10-11 21:10:12 | 显示全部楼层 |阅读模式
30鱼币
例如json模块(位置:D:\Python\Python37\Lib\json)
我们导入json时 ,是直接import json的 ,这是怎么做到的?
我也想写自用的模块 ,然后直接import '我自己分类的文件夹作为的模块名' .但视频教的方法 ,它需要 :文件夹名.模块名(.py文件名)

或者说 ,有什么办法能模拟导入json是的那种导入效果 ,来导入自己的python模块文件么?(需要能自己用文件夹给不同作用的自用python文件分组 )

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-12 08:11:15 | 显示全部楼层
本帖最后由 丨游戏灬需要 于 2020-10-12 08:19 编辑

试出来了 ,答案是这样的:
原本视频教的是 __init__为空 ,而如果想要像import json一样的话(可以看到 ,在D:\Python\Python37\Lib里 ,json其实是个文件夹 ,所以我们导入的是个''文件夹'' ,而不是文件夹里的模块)
但实际上 ,将源代码放入 __init__.py里就对了 ,这样导入文件夹时 ,就能用代码写的函数了

顺便 ,你们所说的
import sys
sys.path.append('你的import的文件夹的路径')
和把'自己写的模块'放入D:\Python\Python37\Lib文件夹也一样 ,因为你想优化修改的时候又得跑过去
所有都太麻烦了

这才是正解的操作:
知乎:https://www.zhihu.com/question/68708279
       
匿名用户
添加PYTHONPATH确实是有效的,sys.path没有出现我添加的路径是因为,我没有重启windows shell。。。原地蒙圈

----------------------------------------------------------------------------------------------

还可以在site-pakage文件夹下面用记事本新建一个后缀.pth文件,在里面写上你想要添加的 路径名,不需要引号,一行一个路径。
编辑于 2017-11-27
site-pakage 在\Python37\Lib里
在site-pakage 建立后缀名为.pth文件 ,里面写入你要''永久添加''的路径就行了 ,文件名无所谓(叫做'新建文本文档'都行)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 21:15:42 | 显示全部楼层
将自己写的模块(.py文件放到一个文件夹里)然后在文件夹里新建一个空的.py文件,命名为__init__.py
然后在编译器里输入
  1. import 文件夹名.py文件名#就可以导入了
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-11 21:33:10 | 显示全部楼层
昨非 发表于 2020-10-11 21:15
将自己写的模块(.py文件放到一个文件夹里)然后在文件夹里新建一个空的.py文件,命名为__init__.py
然后 ...

这个不合我要求 ,限制有些大
(不手动在D:\Python\Python37\Lib\site-packages设置'永久路径'的话) ,就必须得和import它的.py文件在同一个位置
而且,不能建立文件夹进行统一管理(否则得import 文件夹名.文件夹名.py文件名 ,就显得很繁琐)

而如果能建立文件夹的话(文件夹名=要import的模块名) ,就能在文件夹里面存放备份 ,文档 ,文件说明等内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 21:38:57 | 显示全部楼层
丨游戏灬需要 发表于 2020-10-11 21:33
这个不合我要求 ,限制有些大
(不手动在D:\Python\Python37\Lib\site-packages设置'永久路径'的话) ,就 ...

额,我是放在同一位置的,,没考虑这么多,打扰了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 21:56:48 | 显示全部楼层
  1. import sys
  2. # sys.path是个列表,里面保存着模块的搜索路径
  3. sys.path.append(你模块所在文件夹路径)
  4. # 然后就可以直接导入你的模块了
  5. 或者将你的模块放到Python模块安装的文件夹也可以,例如C:\Python38\Lib\site-packages\
  6. # 再有就是将你的模块打包成安装包,安装到Python环境,这个步骤比较多
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-12 00:49:34 | 显示全部楼层
可以建立文件夹进行统一管理 那个叫包 不叫模块
可以看我最近在写的一个包 https://github.com/nanarino/eleme_reapi/tree/meituan_reapi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-12 01:09:11 | 显示全部楼层
kogawananari 发表于 2020-10-12 00:49
可以建立文件夹进行统一管理 那个叫包 不叫模块
可以看我最近在写的一个包 https://github.com/ ...

重要的是效果 ,怎么做到像import json 的那种效果才是重点...........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-12 01:29:16 | 显示全部楼层
丨游戏灬需要 发表于 2020-10-12 01:09
重要的是效果 ,怎么做到像import json 的那种效果才是重点...........

就是import 文件夹名字啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-12 01:45:27 | 显示全部楼层
kogawananari 发表于 2020-10-12 01:29
就是import 文件夹名字啊

你说的和2楼的有什么区别?.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-12 06:26:13 From FishC Mobile | 显示全部楼层
Step1.给你打包好的模块取一个恰当的名字
Step2.装到一个你认为合适的路径(例如:"D:\mine\shell.py")
Step3.在D:\mine下建立__init__.py,内容可以留空
Step4.直接将这个文件夹导入到sys.path里头(用刚才那个例子:)
Step4代码如下:
import sys
sys.path.append("D:\\mine")
Step5.回车,然后import 模块名就可以啦。
如果不会的话我可以录个视频操作。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-12 08:06:33 | 显示全部楼层
本帖最后由 丨游戏灬需要 于 2020-10-12 08:10 编辑
刘宗睿 发表于 2020-10-12 06:26
Step1.给你打包好的模块取一个恰当的名字
Step2.装到一个你认为合适的路径(例如:"D:\mine\shell.py")
Ste ...


看清楚题目 ,不是这个 ,或者你看看楼层的回复你也能知道啊....
你打开json源文件的地址(D:\Python\Python37\Lib\json)看看就知道了...

算了 ,我试出来了 .你们说的答案都一样 ,都很相近 ,但都不是 ,关键没说出来.......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-24 11:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表