Скрипты в пакете PythonPython

Программы на Python
Гость
Скрипты в пакете Python

Сообщение Гость »


Я разрабатываю приложение на Python, которое решил превратить в пакет, который будет установлен с помощью easy_install или pip позже. Я использовал поиск, чтобы найти несколько хороших источников о структуре каталогов для пакетов Python. См. этот ответ или этот пост.
Я создал следующую структуру (я пропустил несколько файлов в списке, чтобы сделать это структура будет более понятной)

Код: Выделить всё

Project/
|-- bin/
|-- my_package/
|   |-- test/
|   |   |-- __init__.py
|   |   |-- test_server.py
|   |-- __init__.py
|   |-- server.py
|   |-- util.py
|-- doc/
|   |-- index.rst
|-- README.txt
|-- LICENSE.txt
|-- setup.py
После этого я создал исполняемый скрипт, запускаемый сервером

Код: Выделить всё

#!/usr/bin/env python
from my_package import server

server.main()
который я поместил в каталог bin. Если я устанавливаю свой пакет с помощью python setup.py install или через pip/easy_install, все работает нормально, я могу запустить сервер, и мой сервер начинает обрабатывать входящие запросы.
Но у меня вопрос: как проверить работу сервера в среде разработки (без предварительной установки my_package)? Также я хочу использовать этот скрипт для запуска последней версии серверного кода в целях разработки.
Разработка происходит в каталоге Project, поэтому я получаю ImportError, если запускаю ./ bin/server-run

Код: Выделить всё

user@host:~/dev/Project/$ ./bin/server-run
Traceback (most recent call last):
File "./bin/server-run", line 2, in 
import my_package
ImportError: No module named my_package
Is it possible to modify bin/server-run script so it will work if I run it from another folder somewhere in the filesystem (not necessarily from Project dir)? Also note that I want to use (if it is possible to achieve) the same script to run server in production environment.


Источник: https://stackoverflow.com/questions/679 ... on-package

Вернуться в «Python»