我正在打包一个 python 包,我将其称为MyPackage.
包结构为:
MyPackage/
script.py
data.json
Run Code Online (Sandbox Code Playgroud)
该data.json文件包含读取的缓存数据script.py。
我已经想出了如何包含数据文件(使用 setuptoolsinclude_package_data=True并在文件中包含数据文件的路径MANIFEST.in)但是现在当我 pip 安装此包并导入已安装的 MyPackage(当前测试安装pip来自 GitHub 存储库)我得到FileNotFound脚本中使用 MyPackage的异常 (data.json)。但是,我看到该data.json文件确实安装在Lib/site-packages/MyPackage.
通过尝试读取json包中的文件,我在这里做错了吗?
请注意,在script.py我试图读data.json为open('data.json', 'r')
我是否搞砸了有关数据文件路径的问题?
我正在阅读红皮书,在检查我的练习答案时,我发现其中一个练习 (6.11) 的解决方案完全不同(并且比我自己的解决方案更优雅和神秘)。
这是代码:
object Candy {
def update: Input => Machine => Machine = (i: Input) => (s: Machine) =>
(i, s) match {
case (_, Machine(_, 0, _)) => s
case (Coin, Machine(false, _, _)) => s
case (Turn, Machine(true, _, _)) => s
case (Coin, Machine(true, candy, coin)) =>
Machine(false, candy, coin + 1)
case (Turn, Machine(false, candy, coin)) =>
Machine(true, candy - 1, coin)
}
def simulateMachine(inputs: List[Input]): State[Machine, (Int, Int)] = for {
_ <- …Run Code Online (Sandbox Code Playgroud)