python - 将 pigpio 安装到虚拟环境中

标签 python installation virtual environment

我想问一下如何在虚拟环境中适本地安装库。当我在 Raspberry Pi Zero W 上激活虚拟环境时,我目前在安装时使用名为 pigpio 的伺服库时遇到困难。

如果我在终端的 bash 命令(即 python myscript.py)中遗漏“sudo”,就会出现问题,因为使用命令“sudo python myscript.py”会导致此脚本的另一个模块(Boto3)在虚拟环境。

当我使用 sudo 命令时的错误信息是: 追溯(最近一次通话): 文件“myscript.py”,第 13 行,位于 进口 pig 皮 ImportError: 没有名为 Boto3 的模块

另一方面,使用非 sudo bash 命令会导致 pigpio,Servo 库模块不可用。

我怀疑问题出在安装 pigpio 库的过程中,因为我必须在其中一个步骤中使用“sudo make install”。我想我可能需要通过避免全局安装的替代方法进行安装,即 sudo。我的理解是只有 pip 可以将包安装到 virtualenv(来自 Pypi)(相对于导致全局安装的 sudo)。有没有办法让我找到另一种方法将库适本地安装到虚拟环境中?

最佳答案

最简单的方法是从系统范围的模块中卸载所有依赖项:

sudo pip uninstall boto3 pigpio

cd 到/home/your_user 之类的目录,然后重试在 venv 中安装依赖项,例如:

virtualenv venv_test
source venv_test/bin/activate
pip install boto3
cd pigpio

可能是对 https://github.com/joan2937/pigpio/blob/master/Makefile#L34 的一个 hacky 编辑在你的 venv 文件夹中?像 $(pwd)/venv_test:

make
make install
deactivate
source venv_test/bin/activate

如果使用 --system-site-packages 或类似的东西,权限和模块路径可能会变得复杂。

还要确保您对 venv 文件夹所在的目录具有权限。所以如果你 ls -ail . 你应该看到非 sudo 用户有 chown craver2000:craver2000 the_dir

您还可以执行以下操作:

sudo cp -R /path/to/dist-packages/pigpio venv_test/lib/python2.7/site-packages
sudo chown -R $USER venv_test/lib/python2.7/site-packages

经过进一步检查,您可以像这样将 pigpio 文件复制到您的 virtualenv 中:

deactivate
cp pigpio/pigpio.py venv_test/lib/python2.7/site-packages
source venv_test/bin/activate

在这里进一步挖掘是一个未经测试的安装,但是嘿模块使用 venv 导入 :):

162  sudo apt-get install build-essential
  163  git clone https://github.com/joan2937/pigpio.git
  164  pip
  165  pip install virtualenv
  166  python -m pip install virtualenv
  167  sudo pip install virtualenv
  168  sudo pip install --upgrade pip
  169  virtualenv
  170  virtualenv venv_test
  171  cd pigpio/
  172  ls
  173  nano Makefile
  174  make
  175  make install
  176  mkdir /opt/pigpio
  177  sudo mkdir /opt/pigpio
  178  chown $USER /opt/pigpio
  179  sudo chown $USER /opt/pigpio
  180  make install
  181  source ../venv_test/bin/activate
  182  ls
  183  make install
  184  sudo mkdir /usr/lib/python3.5/site-packages
  187  sudo chown $USER /usr/lib/python3.5/site-packages
  211  sudo chmod 4755 /sbin/ldconfig
  213  sudo chmod 4755 /sbin/ldconfig.real
  214  make install
  215  history

关于python - 将 pigpio 安装到虚拟环境中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47802051/

相关文章:

linux - 下载适用于 Linux 的 emacs 二进制文件?

.net - 如何满足 "dynamic"Click Once 先决条件

C++ 继承和虚函数

python - 获取范围内集合的端点

Python 顶级 JSON 索引

list - 如何找到 Homebrew 的可安装包列表?

C#虚静态方法

c# - 如何以编程方式获取 Windows Azure 中的虚拟机列表

c# - 找到正确数字集的算法

python - 在 Python 中使用 SimpleCookie 管理 token 生命周期