bypy
bypy copied to clipboard
missing `bypy/res/auth.json` when using `setup.py install`
$ bypy list
FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.10/site-packages/bypy/res/auth.json
package source code https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bypy-git
$ docker run -v $PWD/bypy:/app -w /app -it python bash
$ PYTHONIOENCODING="utf-8" python setup.py install --root=pkgdir --optimize=1
$ ls pkgdir/usr/local/lib/python3.10/site-packages/bypy/res/auth.json
No such file or directory
刚安装,同错误
$ bypy info
Traceback (most recent call last):
File "/usr/bin/bypy", line 33, in <module>
sys.exit(load_entry_point('bypy==1.7.12', 'console_scripts', 'bypy')())
File "/usr/lib/python3.10/site-packages/bypy/bypy.py", line 3815, in main
by = ByPy(**bypyopt)
File "/usr/lib/python3.10/site-packages/bypy/bypy.py", line 325, in __init__
self.__load_auth_server_list()
File "/usr/lib/python3.10/site-packages/bypy/bypy.py", line 1001, in __load_auth_server_list
j = json.loads(pkgutil.get_data(__name__, 'res/auth.json'))
File "/usr/lib/python3.10/pkgutil.py", line 639, in get_data
return loader.get_data(resource_name)
File "<frozen importlib._bootstrap_external>", line 1073, in get_data
FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.10/site-packages/bypy/res/auth.json'
谢谢反馈。
最新版本?奇怪为什么最后/usr/lib/python3.10/site-packages/bypy/res/auth.json
这个文件不存在。我刚用python3.9 virtualenv试了一下pip install
是没有问题的。
@houtianze 不过我不是pip装的,我好像是从archlinuxcn源安装的,可能是打包问题
@choyy 哦,有可能。
@loynoir 我猜应该是PKGBUILD
少加了bypy.res
这个包的原因?最近升级里加多了一个res
目录打包 - https://github.com/houtianze/bypy/blob/d7ffb4863f0b0debb98548c8df0dc471c475b206/setup.py#L53
(bypy.test
包应该不需要加进去,忘了去掉。)
Clone master branch 之后新建 venv 环境并 pip install .
报错
FileNotFoundError: [Errno 2] No such file or directory: '/home/aru/Temporary/bypy/venv/lib/python3.10/site-packages/bypy/res/auth.json'
但是该文件在当前路径下存在
> fd auth
baidudoc/baidu_oauth_rest_api_list.pdf
baidudoc/baidu_oauth_rest_overview.pdf
bypy/res/auth.json
手动复制 auth.json 至上述位置后解决问题。怀疑是 setup.py 或其他打包脚本内未正确处理或执行复制文件这步?
@MrAru
谢谢提供信息。我自己试了一下,用venv
建立虚拟环境source后运行pip install .
,res/auth.json
是存在的。。
ls /tmp/venv39/lib/python3.9/site-packages/bypy/res
__init__.py __pycache__ auth.json
@houtianze 3.9
3.10
https://github.com/houtianze/bypy/blob/d7ffb4863f0b0debb98548c8df0dc471c475b206/setup.py#L55
这里没有指定 bypy/res/*.json
(未测试),所以 setup.py 的时候不认识。
参考:https://stackoverflow.com/questions/50879668/python-setup-py-some-files-are-missing
本地试了一下./setup.py install
后运行bypy ls
没有问题啊。