Skip to main content
 首页 » 编程设计

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

2025年01月19日21itcoder

我想问一下如何在虚拟环境中适本地安装库。当我在 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