команда шпагата не найдена (кружок) - PullRequest
0 голосов
/ 13 ноября 2018

Я использую circleci для автоматического развертывания пакета python в PyPi, когда новый тег помещается в GitHub.Я следовал этому учебнику

Мой рабочий процесс завершается с ошибкой home/circleci/project/twitter_sentiment/bin/python: No module named twine

Я пытался убедиться, что шпагат был установлен перед вызовом шпагатакоманда.Я также пытался вызвать команду шпагата с помощью python -m twine. Насколько я понимаю, кажется, что шпагат не добавляется к пути контейнера - что вызывает ошибку command not found.

Как бы я решил эту ошибку?

файл config.yml

version: 2
jobs:
  build:
    docker:
      - image: circleci/python:3.6

    working_directory: ~/twitter-sentiment

    steps:
      - checkout

      - run:
          name: install dependencies
          command: |
            python3 -m venv twitter_sentiment
            . twitter_sentiment/bin/activate
            pip install -r requirements.txt

      - save_cache:
          paths:
            - ./twitter_sentiment
          key: v1-dependencies-{{ checksum "setup.py" }}

  runLibraryTest:
    docker:
      - image: circleci/python:3.6

    steps:
      - checkout

      - restore_cache:
          keys: 
          - v1-dependencies-{{ checksum "setup.py" }}

      - run:
          name: run twitter_sentiment tests
          command: |
            python3 -m venv twitter_sentiment
            . twitter_sentiment/bin/activate
            pip install -r requirements.txt
            cd test/
            python3 -m unittest test_twitterSentiment

      - save_cache:
          paths:
            - ./twitter_sentiment
          key: v1-dependencies-{{ checksum "setup.py" }}

      - store_artifacts:
          path: test-reports
          destination: test-reports

  deploy:
    docker:
      - image: circleci/python:3.6
    steps:
      - checkout

      - restore_cache:
          key: v1-dependencies-{{ checksum "setup.py" }}

      - run:
          name: verify git tag vs version
          command: |
            python3 -m venv twitter_sentiment
            . twitter_sentiment/bin/activate
            pip install -r requirements.txt
            python3 setup.py verify

      - run:
          name: create package files
          command: |
            python3 setup.py sdist bdist_wheel

      - run:
          name: create .pypirc file
          command: |
            echo -e "[pypi]" >> .pypirc
            echo -e "repository = https://pypi.org/legacy/"
            echo -e "username = TeddyCr" >> .pypirc
            echo -e " = $PYPI_PASSWORD" >> .pypirc

      - run:
          name: upload package to pypi server
          command: |
            python3 -m venv twitter_sentiment
            . twitter_sentiment/bin/activate
            pip install --user --upgrade twine
            python -m twine upload dist/*

      - save_cache:
          paths: 
            - ./twitter_sentiment
          key: v1-dependencies-{{ checksum "setup.py" }}

workflows:
  version: 2
  build_and_deploy:
    jobs:
      - build:
          filters:
            tags:
              only: /.*/

      - runLibraryTest:
          requires:
            - build
          filters:
            tags:
              only: /[0-9]+(\.[0-9]+)*/

            branches:
              ignore: /.*/

      - deploy:
          requires:
            - runLibraryTest
          filters:
            tags:
              only: /[0-9]+(\.[0-9]+)*/
            branches:
              ignore: /.*/

1 Ответ

0 голосов
/ 13 ноября 2018

Вы создаете виртуальную среду, активируете ее, а затем устанавливаете шпагат вне нее.

Удалить --user из pip install --user --upgrade twine

...