将 pigpio 安装到虚拟环境中

Installing pigpio into a virtual environment

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

如果我在终端 (i.e.python myscript.py) 的 bash 命令中遗漏了 'sudo',就会出现问题,因为使用命令 'sudo python myscript.py' 将使该脚本的另一个模块 (Boto3) 在虚拟环境中不可用。

我使用 sudo 命令时的错误信息是: 追溯(最近一次通话): 文件 "myscript.py",第 13 行,位于 进口猪皮 导入错误:没有名为 Boto3

的模块

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

我怀疑问题出在 pigpio 库的安装过程中,因为我必须在其中一个步骤中使用“sudo make install”。我想我可能需要通过避免全局安装的替代方法进行安装,即 sudo。我的理解是只有 pip 可以将包安装到 virtualenv(来自 Pypi)(v.s.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 进行修改以使其位于您的 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