Tag: Модуль

Проверка установленных зависимостей модулей Python

Как можно проверить, установлен ли набор модулей, с учетом названий модулей. Например modules = set(["sys", "os", "jinja"]) for module in modules: # if test(module exists): # do something Хотя можно выписать тесты как: try: import sys except ImportError: print "No sys!" Это немного громоздко для того, что я делаю. Есть ли динамичный способ сделать это? […]

python: В чем причина не допускать * относительного импорта?

В чем причина не допускать * относительного импорта? например from ..new_tool import * или сделать относительный импорт напрямую: import ..new_tool

Python: почему импортированный модуль не может ссылаться на другой импортированный модуль?

main.py: import subone import subtwo subone.py: a = 'abc' subtwo.py: print subone.a Запуск python main.py вызывает значение NameError: name 'subone' is not defined . Я ожидал, что он напечатает «abc». Рефакторинг для использования from import и классами не помогает: main.py: from subone import * # Only using from X import * for example purposes. from […]

Ошибка импорта файла .pyd (как модуля python) из файла .pyo

Я запускаю pygame (для Python) в Windows. У меня есть некоторые .pyo-файлы и некоторые .pyd-файлы. У меня есть другой скрипт для другого места, который пытается импортировать один из .pyd-файлов в качестве модуля, но я продолжаю получать ошибку, которой не существует такой модуль. У файлов .pyo есть проблемы с импортом .pyd-файлов в качестве модулей? Что я […]

Какой порядок Python используется для импорта модуля?

Я обнаружил что-то странное в инструкции импорта python. Предположим, что у меня есть файловая структура, как показано ниже: foo\ __init__.py bar.py os.py Коды в bar.py (Другие файлы пустые) import os print os.__file__ Странно, когда я запускаю python -m foo.bar , он печатает foo/os.pyc Однако, когда я изменил директиву на foo и запустил python -m bar […]

Ошибка в документации Python?

Я читаю http://docs.python.org/2/tutorial/modules.html#more-on-modules и задаюсь вопросом, правильно ли следующее: Модули могут импортировать другие модули. Обычно, но не обязательно размещать все операторы импорта в начале модуля (или скрипта, если на то пошло). Импортируемые имена модулей помещаются в глобальную таблицу символов модуля импорта. Очевидно нет: >>> def foo(): import sys … >>> foo() >>> sys.path Traceback (most […]

Использовать случаи для __init__.py в python 3.3+

Теперь, когда __init__.py больше не требуется создавать каталог, признанный в качестве пакета, лучше ли вообще избегать их, если это возможно? Или есть еще хорошо принятые варианты использования __init__.py в python 3.3+? Насколько я понимаю, __init__.py очень часто используются для запуска кода во время импорта модуля ( например, для инкапсуляции внутренней файловой структуры пакета или для […]

Как я могу запретить сам модуль Python импортировать?

Например, я хочу создать плагин sql alchemy для другого проекта. И я хочу назвать этот модуль sqlalchemy.py. Проблема в том, что это мешает мне импортировать sqlalchemy : #sqlalchemy.py import sqlalchemy Это заставит модуль импортировать себя. Я пробовал это, но он не работает: import sys #Remove the current directory from the front of sys.path if not […]

ipython: повторный импорт модулей при использовании% run

Мне нравится ipython, но я обнаружил проблему с% run: импортированные модули не перезагружаются, когда вызов% run вызывается повторно. Предположим, что файл ex1.py содержит строки: import ex2 ex2.x.append(1) print ex2.x Файл ex2.py содержит: x = [] Теперь запуск python ex1.py из командной строки неоднократно печатает [1] каждый раз. Но при вызове %run ex1.py изнутри ipython многократно […]

Разве divmod () быстрее, чем с помощью операторов% и //?

Я помню из сборки, что целые команды деления дают как фактор, так и остаток. Таким образом, в python встроенная функция divmod () будет лучше по производительности, чем использование операторов% и // (предположим, конечно, нужно как частное, так и остальное)? q, r = divmod(n, d) q, r = (n // d, n % d)

Python - лучший язык программирования в мире.