python3 setup.py установка не удалась (RHEL 8) - PullRequest
2 голосов
/ 09 января 2020

Проблема:

#python3 setup.py install

не работает

Среда: RHEL 8 UBI-контейнер


У меня есть файл setup.py, который выглядит следующим образом: (любые указатели или обновления в этом файле setup.py приветствуются)

import setuptools

print('python/setup.py')

setuptools.setup(
      name="process_data",
      version="1.0",
      description="desc",
      author="FirstName LastName",
      author_email="dude@abides.abide",
      url="https://some.com",
      packages=setuptools.find_packages(),
)

У меня есть структура каталогов, подобная этой ( <some>.py в каждом каталоге вместе с __init__.py):

python/
 setup.py
 <dir>/__init__.py
 <dir>/__init__.py
 <dir4>/__init__.py
 <dir4>/<sub-dir1>/__init__.py
 <dir4>/<sub-dir1>/<sub-dir>__init__.py

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


Я делаю это:

#cd python
#python3 setup.py install

Я получаю эту ошибку:

python/setup.py
running install
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

/usr/local/lib/python3.6/site-packages/test-easy-install-1625.write-test

    [Errno 2] No such file or directory: '/usr/local/lib/python3.6/site-packages/test-easy-install-1625.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /usr/local/lib/python3.6/site-packages/

This directory does not currently exist.  Please create it and try again, or
choose a different installation directory (using the -d or --install-dir
option).

Вопросы:

Откуда это происходит: test-easy-install-1625.write-test? (настолько сбит с толку относительно того, что это такое)

В моей системе, действительно, этот каталог не существует (, почему python3 setup.py установщик смотрит там? что сказал ему искать там? ?): /usr/local/lib/python3.6

В моем setup.py нет ничего, что указывало бы на то, чтобы смотреть туда.


Я просмотрел все, и похоже на мой / site-packages / каталог находится здесь (где установлены другие модули, когда я запускал pip)

`/usr/local/lib64/python3.6/site-packages/`

Как это исправить?

Спасибо, я так очень нужно, чтобы это сразу заработало. Я работал над Windows, и >python setup.py install просто работает там.

Есть ли какие-либо переменные env, которые мне нужно настроить?

Я просто установил python с: dnf -y install python36 это оно. (последняя версия доступна в любом репозитории RHEL 8 для установки).

1 Ответ

0 голосов
/ 09 января 2020

Я предполагаю, что вы вошли в python командный режим, если вы этого не сделаете, необходимы следующие команды, обратите внимание, чтобы установить переменные Path и PythonPath:

setlocal
set env_name=python3.6
set Path=C:\Users\s41167\Miniconda3\envs\%env_name%;C:\Users\s41167\Miniconda3\envs\%env_name%\Scripts;%Path%
set PythonPath=C:\Users\s41167\Miniconda3\envs\%env_name%\Lib\site-packages
cd C:\Users\s41167\Documents\%env_name%
cmd.exe /K activate %env_name%

, если вы введете python Командный режим, вы можете использовать pip для установки пакета:

pip install <package location> --target <install location> --upgrade

ниже приведены мои команда установки и результат:

(python3.6) C:\Users\s41167\Documents\python3.6>pip install ./python_package --t
arget ./target --upgrade
Processing c:\users\s41167\documents\python3.6\python_package
Building wheels for collected packages: process-data
  Building wheel for process-data (setup.py) ... done
  Created wheel for process-data: filename=process_data-1.0-cp36-none-any.whl si
ze=1721 sha256=ef5eaf061000f30d472e5dde268694733e40a3f8a4a29fa78faec69f125443c9
  Stored in directory: C:\Users\s41167\AppData\Local\Temp\pip-ephem-wheel-cache-
v6lt_ndp\wheels\61\01\f5\07e0760baa10d63e1c43b37eadbb55b79828f4fe337209026a
Successfully built process-data
Installing collected packages: process-data
Successfully installed process-data-1.0

(python3.6) C:\Users\s41167\Documents\python3.6>

и расположение файлов:

.\python_package
  __init__.py
  setup.py
                \directory
                 __init__.py
                \directory4
                 __init__.py
                            \sub_dirctory1
                             __init__.py
...