微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

避免使用 dist-packages 中的 egg 版本

如何解决避免使用 dist-packages 中的 egg 版本

所以,我想在我的项目中使用 python3-mapnik。为此,我必须使用 sudo apt install python3-mapnik 安装它。为了使该模块在我的 github 操作环境中可用,我需要修改 PYTHONPATH 环境变量,这是工作流程:

name: Python

on:
  push:
    branches-ignore:
      - 'staging*'
      - 'automated-tests'

jobs:
  python_utils_tests_page_0:
    runs-on: ubuntu-18.04
    services:
      postgres:
        image: cheewai/postgis:postgres-10.1
        env:
          # duplicated to avoid problems with current Codeship environment variables
          PG_USER: postgres
          PG_PASSWORD: postgres
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: test
        ports:
          - 5432:5432
        # needed because the postgres container does not provide a healthcheck
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: '3.6'

      - uses: actions/cache@v2
        id: cache
        with:
          path: ${{ env.pythonLocation }}
          key: pip-${{ env.pythonLocation }}-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/requirements_dev.txt') }}
          restore-keys: pip-${{ env.pythonLocation }}

      - name: Install dependencies
        run: |
          sudo rm -rf /usr/lib/python3/dist-packages/six-1.11.0.egg-info
          sudo rm /usr/lib/python3/dist-packages/six.py
          curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
          python get-pip.py pip==21.0.1
          pip install -r requirements.txt
          pip install -r requirements_dev.txt

      - name: Install apt dependencies
        run: |
          echo "PYTHONPATH=/usr/lib/python3/dist-packages" >> $GITHUB_ENV
          sudo apt-get update
          sudo apt-get install gdal-bin
          sudo apt-get install build-essential python3-dev python3-pip python3-setuptools python3-wheel python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info
          sudo apt-get install libmapnik3.0 libmapnik-dev python3-mapnik

echo "PYTHONPATH=/usr/lib/python3/dist-packages" >> $GITHUB_ENV 的问题在于,该目录包含大量来自我使用的某些软件包(如 six 软件包)的旧版本的蛋。

起初我想:嘿,我可以删除那个pacakge,所以我添加了这两行:

sudo rm -rf /usr/lib/python3/dist-packages/six-1.11.0.egg-info
sudo rm /usr/lib/python3/dist-packages/six.py

但是后来我得到了一个错误,因为另一个 httplib2 的鸡蛋包含一个非常旧的版本。

所以,总而言之,我需要一种方法来使 python3-mapnik 包可用于 python 项目,但不能使该文件夹中存在的其余鸡蛋/包可用。为此,我想出了两个选项:

  • 删除整个 dist-packages 文件夹,我不知道它是坏的还是可能会破坏某些东西。
  • 在python中更改导入的首选项,我不知道该怎么做。

有什么想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。