大きな.pytスクリプト(pythonツールボックス)があり、それを多くのファイル(1ファイル-1ツール)に分割しようとしています。
単一の.pytファイルではすべてが完璧に機能しますが、ファイルが分割されると、次のメッセージが表示されます。AttributeError: 'module' object has no attribute 'Parameter'。
ファイルの構造:
My Catalog:
-- toolbox.pyt
-- toolpackage:
---- configurator.py
---- __init__.py
toolbox.pyt:
# This Python file uses the following encoding: utf-8
import arcpy
from toolpackage.configurator import ToolboxConfigurator
class Toolbox(object):
def __init__(self):
"""Define the toolbox (the name of the toolbox is the name of the .pyt file)."""
self.label = "label"
self.alias = "Tools"
# List of tool classes associated with this toolbox
self.tools = [ToolboxConfigurator]
configurator.py:
# This Python file uses the following encoding: utf-8
import arcpy
class ToolboxConfigurator(object):
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = u"config"
self.description = u""
self.canRunInBackground = False
def getParameterInfo(self):
"""Define parameter definitions"""
new_config_file = arcpy.Parameter(
displayName = u"?",
name = "new_config_file",
datatype = "GPBoolean",
parameterType = "Optional",
direction = "Input")
parameters = [new_config_file]
return parameters
def isLicensed(self):
"""Set whether tool is licensed to execute."""
return True
def updateParameters(self, parameters):
"""Modify the values and properties of parameters before internal validation
is performed. This method is called whenever a parameter has been changed."""
return
def updateMessages(self, parameters):
"""Modify the messages created by internal validation for each tool
parameter. This method is called after internal validation."""
return
def execute(self, parameters, messages):
"""The source code of the tool."""
__init__.py
明確です。
私のエラー:
Traceback (most recent call last):
File "C:\tools_v4\toolpackage\configurator.py", line 15, in getParameterInfo
new_config_file = arcpy.Parameter(
AttributeError: 'module' object has no attribute 'Parameter'
私はあなたの構造に正確に従いました、そしてそれは私のために働きます。
—
DWynne、2015
2 DWynne、ソフトウェアのバージョンは何ですか?
—
Vladimir Ivanov
10.3を使用しています(ただし、別のバージョンを簡単に確認できました)。どのバージョンを使用していますか?
—
DWynne、2015
ArcGIS 10.3.1で同じ問題が発生しました。ArcGISによって作成されたすべてのXMLファイルをツールボックスフォルダーから削除し、ArcGISを再起動してツールを再実行しました(結果ウィンドウではなくクリックして)。まだランダムのようです。
—
Thomas
これは、正常に機能していた複数ファイルのarcpyサービスで、10.3.1でよく見られます。私は以前のバージョンをgitから戻し、完全に機能し、ディレクトリをクリーンアップし、サービスをクリアしましたが、それでも奇妙なランダムな問題が残っています。
—
CMPalmer 2015年