相关疑难解决方法(0)

从virtualenv bin内部运行python脚本不起作用

我有一个我希望全球可用的脚本.我用标准的hashbang开始了它:

#! /usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

并将其链接到我的virtualenv的bin目录:

~/environments/project/env/bin/myscript
Run Code Online (Sandbox Code Playgroud)

并将该目录添加到我的路径中.当我运行命令时:

myscript
Run Code Online (Sandbox Code Playgroud)

我的其中一个库出现导入错误.但是,如果我激活虚拟环境并运行脚本,它将按预期工作.

我已经排除了符号链接的问题(我也试过在bin文件夹中移动脚本).我也尝试用python运行脚本

python ~/environments/project/env/bin/myscript
Run Code Online (Sandbox Code Playgroud)

以前我使用的是激活环境然后运行我的脚本的脚本,但我觉得从这个文件夹运行的脚本应该与virtualenv的解释器和site-packages一起运行.任何关于为什么这可能不起作用的想法或某些方法我可以调试这个?

python virtualenv rundeck

28
推荐指数
2
解决办法
7万
查看次数

无法使用 sudo 运行 Python 脚本

我有一个简单的脚本,它使用signalr-client-py作为外部模块。

from requests import Session
from signalr import Connection
import threading
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 运行我的脚本时sudo python myScriptName.py出现错误:

Traceback (most recent call last):
  File "buttonEventDetectSample.py", line 3, in <module>
    from signalrManager import *
  File "/home/pi/Desktop/GitRepo/DiatAssign/Main/signalrManager.py", line 2, in <module>
    from signalr import Connection
ImportError: No module named signalr
Run Code Online (Sandbox Code Playgroud)

如果我只运行我的脚本输入python myScriptName.py它工作得很好但是我需要在前面有sudo因为稍后在我的其他脚本中(使用这个脚本)我在文件系统上执行写操作。

我对 Python 很陌生,这就是为什么我需要知道如何处理这种情况。如果我输入,pydoc modules我会得到一个列表,其中包含:

signalr
signalrManager
Run Code Online (Sandbox Code Playgroud)

如果我输入,pip freeze我可以看到那里列出:

signalr-client==0.0.7
Run Code Online (Sandbox Code Playgroud)

python sudo pip

6
推荐指数
1
解决办法
6941
查看次数

标签 统计

python ×2

pip ×1

rundeck ×1

sudo ×1

virtualenv ×1