资讯专栏INFORMATION COLUMN

不同用户python path 权限问题

dack / 2828人阅读

摘要:问题背景用户可以运行但运行则下列错误经过排查,发现是在某些的权限问题解决方法查看使用的代码可知,使用的是查看路径切换到用户然后在命令行运行路径的权限修改路径的权限发现有写目录是没有执行权限的。

问题背景

root 用户可以运行pip install mkdocs
但gitlab-runner 运行pip install mkdocs 则下列错误

pip install mkdocs
Traceback (most recent call last):
  File "/bin/pip", line 7, in 
    from pip._internal import main
ImportError: No module named "pip._internal"

经过排查,发现是gitlab-runner 在某些python path 的权限问题

解决方法 1. cat /bin/pip 查看使用的python 代码
#!/usr/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == "__main__":
    sys.argv[0] = re.sub(r"(-script.pyw?|.exe)?$", "", sys.argv[0])
    sys.exit(main())

可知,使用的是python3

查看path 路径

切换到root 用户
然后在命令行运行:

[root@test75vm1 ~]# python3
Python 3.4.5 (default, May 29 2017, 15:17:55) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
["", "/usr/lib64/python34.zip", "/usr/lib64/python3.4", "/usr/lib64/python3.4/plat-linux", "/usr/lib64/python3.4/lib-dynload", "/usr/lib64/python3.4/site-packages", "/usr/lib/python3.4/site-packages"]
check path 路径的权限

ls -rlt /usr/lib/python3.4/site-packages

修改python path 路径的权限

ls -rlt 发现有写目录是没有执行权限的。
执行命令

chmod 755 -R /usr/lib64/python3.4 /usr/lib64/python3.4/plat-linux /usr/lib64/python3.4/lib-dynload /usr/lib64/python3.4/site-packages /usr/lib/python3.4/site-packages

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42179.html

相关文章

  • Tornado 简单入门教程(零)——准备工作

    摘要:学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考。完整的教程将尽可能遵循下面的目录顺序。安装的安装也很简单。搭建简单服务器表示不是必要的这里仅以做示范,其他系统操作方法类似。 前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端)。学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份...

    lifefriend_007 评论0 收藏0
  • Tornado 简单入门教程(零)——准备工作

    摘要:学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考。完整的教程将尽可能遵循下面的目录顺序。安装的安装也很简单。搭建简单服务器表示不是必要的这里仅以做示范,其他系统操作方法类似。 前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端)。学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份...

    springDevBird 评论0 收藏0
  • PyCasbin: 支持 ACL、RBAC、ABAC 多种模型的 Python 权限管理框架

    摘要:是一个用语言打造的轻量级开源访问控制框架,目前在开源。认为由项目自身来管理用户角色列表更为合适,假设所有策略和请求中出现的用户角色资源都是合法有效的。 PyCasbin 是一个用 Python 语言打造的轻量级开源访问控制框架( https://github.com/casbin/pyc... ),目前在 GitHub 开源。PyCasbin 采用了元模型的设计思想,支持多种经典的访问...

    Freeman 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<