首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python FileNotFoundError:[Errno 2],存在绝对路径和文件

python FileNotFoundError:[Errno 2],存在绝对路径和文件
EN

Stack Overflow用户
提问于 2018-07-09 06:17:16
回答 1查看 597关注 0票数 0

我将Python脚本作为Kubernetes作业运行。但我有下一个问题。我已经尝试过使用chmod -R 777 /home/vagrant/,但它不能使脚本成功运行。

代码语言:javascript
复制
Traceback (most recent call last):
  File "app.py", line 39, in <module>
    main()
  File "app.py", line 28, in main
    config.load_kube_config(config_file=kubeconfig)
  File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 470, in load_kube_config
    config_persister=config_persister)
  File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 427, in _get_kube_config_loader_for_yaml_file
    with open(filename) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/vagrant/.kube/config'

正如您所看到的,脚本失败是因为这样的文件不存在,但是当我执行ls时,该文件显示它确实存在。

代码语言:javascript
复制
vagrant@vagrant:/vagrant/podsLister$ kubectl delete job pod-lister
job.batch "pod-lister" deleted
vagrant@vagrant:/vagrant/podsLister$ ls /home/vagrant/.kube/
cache  config  http-cache
EN

回答 1

Stack Overflow用户

发布于 2018-07-09 08:12:50

问题是脚本在Docker容器中运行。该容器有自己的文件系统,而不是恰好托管它的任何机器的文件系统。事实上,这就是容器的大部分要点:它们的行为就像一台孤立的、独立的计算机,而不需要一台实际的独立计算机。

解决方案不是很明显,因为它不清楚为什么你期望它能工作,或者你想要做什么。可能有意义的事情包括:

  • 更改docker构建脚本以将文件复制到container.
  • Setting up主机文件共享中,以便真实计算机的文件系统的一部分可供容器使用,然后使容器挂载该文件共享。
  • 设置“常规”文件共享,以便真实计算机的文件系统的一部分可供网络上的任何人使用,然后使容器挂载该文件。
  • 使用某些更高级别的功能(如Kubernetes ConfigMaps )将文件暴露给容器。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51236390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档