Я заставил его работать, используя простой скрипт ruby, который использует API GitHub:
Я нашел хороший ответ от , https://sam.hooke.me/note/2019/01/call-python-script-from-pylint-init-hook / редактируют Ваш pylintrc и добавляют следующее в ведущем устройстве init-hook="import imp, os; from pylint.config import find_pylintrc; imp.load_source('import_hook', os.path.join(os.path.dirname(find_pylintrc()), 'import_hook.py'))"
Чтобы разъяснить ответ Калеба , сначала контракт - это место, где вы создаете WSDL , а затем можете создайте реализацию из этого, и, поскольку WSDL является вашим контрактом, он будет первым контрактом.
Последний контракт - это место, где WSDL создается из исходного кода или реализации, поэтому он, скорее всего, будет генерируется инструментом, а не созданным разработчиком.
Обновление:
Чтобы получить хорошее объяснение с кодом на Java, вы можете посмотреть это объяснение из документации Spring Web Services 1.5 .
Они будут обсуждать все «за» и «против», хотя они будут склонны к их подходу (который контракт прежде всего ). В любом случае, я думаю, что это хорошее объяснение.
\ Python26 \ Lib \ site-packages - это обычное место для размещения дополнительных пакетов, и оно обязательно будет на вашем пути к python. Если вы знаете, как создавать символические ссылки Windows или аналогичные (я не знаю!), Вы могли бы сделать это вместо этого. Здесь есть еще много вариантов : http://docs.python.org/install/index.html, включая возможность добавления sys.path с каталогом уровня пользователя вашего кода разработки, но в На практике я обычно просто символически привязываю свой локальный каталог разработки к пакетам сайтов - его копирование дает тот же эффект.Может быть, вручную добавив каталог в PYTHONPATH?
sys.path.append(dirname)
Одно решение, которое я только что обнаружил, - это просто запустить PyLint для всего пакета, а не для одного файла. Каким-то образом ему удается найти импортированный модуль.
Мне известны два варианта.
Во-первых, измените переменную среды PYTHONPATH
, чтобы включить каталог над вашим модулем.
В качестве альтернативы отредактируйте ~ / .pylintrc
, чтобы включить каталог над вашим модулем, например:
[MASTER]
init-hook='import sys; sys.path.append("/path/to/root")'
(Или в другой версии pylint, init-hook требует, чтобы вы изменили [General] на [МАСТЕР])
Обе эти опции должны работать.
Надеюсь, что это поможет.
Попробуйте
if __name__ == '__main__':
from [whatever the name of your package is] import one
else:
import one
Обратите внимание, что в Python 3 синтаксис для части в предложении else
будет
from .. import one
Если подумать, это, вероятно, не решит вашу конкретную проблему. Я неправильно понял вопрос и подумал, что two.py запускается как основной модуль, но это не так. И, учитывая различия в способах Python 2.6 (без импорта absolute_import
из __ future __
) и импорта дескрипторов Python 3.x, вам все равно не нужно делать это для Python 2.6, я не думай.
Тем не менее, если вы в конечном итоге переключитесь на Python 3 и планируете использовать модуль как модуль пакета, так и как отдельный сценарий внутри пакета, может быть хорошей идеей сохранить что-то вроде
if __name__ == '__main__':
from [whatever the name of your package is] import one # assuming the package is in the current working directory or a subdirectory of PYTHONPATH
else:
from .. import one
в уме.
РЕДАКТИРОВАТЬ: А теперь о возможном решении вашей реальной проблемы. Либо запустите PyLint из каталога, содержащего ваш one
модуль (возможно, через командную строку), либо поместите следующий код где-нибудь при запуске PyLint:
import os
olddir = os.getcwd()
os.chdir([path_of_directory_containing_module_one])
import one
os.chdir(olddir)
В принципе, в качестве альтернативы возиться с PYTHONPATH, просто сделайте убедитесь, что текущий рабочий каталог - это каталог, содержащий one.py
, когда вы выполняете импорт.
(Глядя на ответ Брайана, вы, вероятно, могли бы присвоить предыдущий код init_hook
, но если вы собираетесь это сделать, то можете просто добавить к sys.path
], что он делает, что немного более элегантно, чем мое решение.)