Как расположить исходный код заявки, поданной с SQLAlchemy и графическим интерфейсом?

Так как мне не разрешают отредактировать ответ Jauco, я дам полный ответ, который работал на меня (страница Russell полагается на негарантируемое поведение, что при закрытии fd 1 для stdout следующие создают вызов, откроет fd 1.

Так, выполняет простой бесконечный сценарий как это:

import time

while True:
    print 'test'
    time.sleep(1)

Сохраняют его к test.py, работают с

python test.py

, Получают изодромное с предварением:

ps auxw | grep test.py

Теперь, присоедините gdb:

gdb -p (pid)

и делают fd волшебство:

(gdb) call creat("/tmp/stdout", 0600)
$1 = 3
(gdb) call dup2(3, 1)
$2 = 1

Теперь можно выследить/tmp/stdout и видеть вывод, который раньше переходил к stdout.

6
задан Esteban Küber 2 October 2009 в 13:07
поделиться

1 ответ

Я считаю этот документ Дж. П. Кальдероне отличным советом о том, как (не) структурировать ваш проект Python. После этого у вас не будет проблем. Я воспроизведу здесь весь текст:

Структура файловой системы проекта Python

Сделайте :

  • назовите каталог как-нибудь связанные с вашим проектом. Например, если ваш проект называется " Twisted ", назовите каталог верхнего уровня для его исходные файлы Twisted . Когда ты делаешь релизы, вы должны включить версию суффикс номера: Twisted-2.5 .
  • создать каталог Twisted / bin и поместите туда свои исполняемые файлы, если вы have any. Don't give them a .py extension, even if they are Python source files. Don't put any code in them except an import of and call to a main function defined somewhere else in your projects.
  • If your project is expressable as a single Python source file, then put it into the directory and name it something related to your project. For example, Twisted/twisted.py. If you need multiple source files, create a package instead (Twisted/twisted/, with an empty Twisted/twisted/__init__.py) and place your source files in it. For example, Twisted/twisted/internet.py.
  • put your unit tests in a sub-package of your package (note - this means that the single Python source file option above was a trick - you always need at least one other file for your unit tests). For example, Twisted/twisted/test/. Of course, make it a package with Twisted/twisted/test/__init__.py. Place tests in files like Twisted/twisted/test/test_internet.py.
  • add Twisted/README and Twisted/setup.py to explain and install your software, respectively, if you're feeling nice.

Don't:

  • put your source in a directory called src or lib. This makes it hard to run without installing.
  • put your tests outside of your Python package. This makes it hard to run the tests against an installed version.
  • create a package that only has a __init__.py and then put all your code into __init__.py. Just make a модуль вместо пакета, это проще.
  • попробуйте придумать волшебные хаки, чтобы Python мог импортируйте свой модуль или пакет без когда пользователь добавляет каталог содержащий его в свой путь импорта (через PYTHONPATH или другой механизм). Ты не правильно будешь обрабатывать все дела, и пользователи получат злится на тебя, когда твое программное обеспечение не работает в их среде.
5
ответ дан 17 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: