I am getting the infamous transaction mode error in ArcGIS Pro running the code outside of ArcGIS Pro 2.4 using propy.bat. I feel like I've exhausted my Googling ability to find a solution that works. Any help is appreciated.
RuntimeError: workspace already in transaction mode
Here's my code:
<SPAN class="keyword token">import</SPAN> sys
<SPAN class="keyword token">import</SPAN> os
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> pyodbc
<SPAN class="keyword token">import</SPAN> time
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Starting"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">import</SPAN> importlib<SPAN class="punctuation token">.</SPAN>util
<SPAN class="keyword token">import</SPAN> config<SPAN class="punctuation token">.</SPAN>py <SPAN class="keyword token">as</SPAN> Config
now <SPAN class="operator token">=</SPAN> datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>now<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
strDate <SPAN class="operator token">=</SPAN> str<SPAN class="punctuation token">(</SPAN>now<SPAN class="punctuation token">.</SPAN>year<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> str<SPAN class="punctuation token">(</SPAN>now<SPAN class="punctuation token">.</SPAN>month<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> str<SPAN class="punctuation token">(</SPAN>now<SPAN class="punctuation token">.</SPAN>day<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> str<SPAN class="punctuation token">(</SPAN>now<SPAN class="punctuation token">.</SPAN>hour<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> str<SPAN class="punctuation token">(</SPAN>now<SPAN class="punctuation token">.</SPAN>minute<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> str<SPAN class="punctuation token">(</SPAN>now<SPAN class="punctuation token">.</SPAN>second<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
<SPAN class="comment token"># Setup Verion</SPAN>
SDE <SPAN class="operator token">=</SPAN> Config<SPAN class="punctuation token">.</SPAN>remote_db_host<SPAN class="operator token">+</SPAN><SPAN class="string token">".sde"</SPAN> <SPAN class="comment token"># SDE File Base on server name</SPAN>
parentVersion <SPAN class="operator token">=</SPAN> <SPAN class="string token">"dbo.DEFAULT"</SPAN>
versionName <SPAN class="operator token">=</SPAN> <SPAN class="string token">"temp"</SPAN><SPAN class="operator token">+</SPAN> strDate
arcpy<SPAN class="punctuation token">.</SPAN>CreateVersion_management<SPAN class="punctuation token">(</SPAN>SDE<SPAN class="punctuation token">,</SPAN> parentVersion<SPAN class="punctuation token">,</SPAN> versionName<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PUBLIC"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Version Created"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Setup Temp Workspace</SPAN>
temploc <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"c:\temp"</SPAN>
file <SPAN class="operator token">=</SPAN> <SPAN class="string token">"tmp.sde"</SPAN>
workspace <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join <SPAN class="punctuation token">(</SPAN>temploc<SPAN class="punctuation token">,</SPAN> file<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Workspace: {}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'\n'</SPAN><SPAN class="punctuation token">,</SPAN>flush<SPAN class="operator token">=</SPAN><SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>isfile<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Deleting Existing SDE File"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'\n'</SPAN><SPAN class="punctuation token">,</SPAN>flush<SPAN class="operator token">=</SPAN><SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">)</SPAN>
os<SPAN class="punctuation token">.</SPAN>remove<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CreateDatabaseConnection_management<SPAN class="punctuation token">(</SPAN>temploc<SPAN class="punctuation token">,</SPAN>file<SPAN class="punctuation token">,</SPAN><SPAN class="string token">"SQL_SERVER"</SPAN><SPAN class="punctuation token">,</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_host<SPAN class="punctuation token">,</SPAN><SPAN class="string token">'DATABASE_AUTH'</SPAN><SPAN class="punctuation token">,</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_user<SPAN class="punctuation token">,</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_password<SPAN class="punctuation token">,</SPAN><SPAN class="string token">"SAVE_USERNAME"</SPAN><SPAN class="punctuation token">,</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_name<SPAN class="punctuation token">,</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"TRANSACTIONAL"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"dbo.DEFAULT"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> workspace
desc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN>
cp <SPAN class="operator token">=</SPAN> desc<SPAN class="punctuation token">.</SPAN>connectionProperties
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Database Connection Properties:"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">" Server:"</SPAN><SPAN class="punctuation token">,</SPAN> cp<SPAN class="punctuation token">.</SPAN>server<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">" Instance:"</SPAN><SPAN class="punctuation token">,</SPAN> cp<SPAN class="punctuation token">.</SPAN>instance<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">" Database:"</SPAN><SPAN class="punctuation token">,</SPAN> cp<SPAN class="punctuation token">.</SPAN>database<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Is GeoDatabase:"</SPAN><SPAN class="punctuation token">,</SPAN> cp<SPAN class="punctuation token">.</SPAN>is_geodatabase<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">" User:"</SPAN><SPAN class="punctuation token">,</SPAN> cp<SPAN class="punctuation token">.</SPAN>user<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">" Version:"</SPAN><SPAN class="punctuation token">,</SPAN> cp<SPAN class="punctuation token">.</SPAN>version<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%-12s %s"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Workspace Type:"</SPAN><SPAN class="punctuation token">,</SPAN> desc<SPAN class="punctuation token">.</SPAN>workspaceType<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
edit <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>Editor<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN>
edit<SPAN class="punctuation token">.</SPAN>startEditing<SPAN class="punctuation token">(</SPAN><SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="token boolean">False</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> edit<SPAN class="punctuation token">.</SPAN>isEditing<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"You are in an edit session"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"You aren't in an edit session"</SPAN><SPAN class="punctuation token">)</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit
edit<SPAN class="punctuation token">.</SPAN>startOperation<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
con <SPAN class="operator token">=</SPAN> pyodbc<SPAN class="punctuation token">.</SPAN>connect<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'DRIVER={SQL Server Native Client 11.0};SERVER='</SPAN><SPAN class="operator token">+</SPAN>str<SPAN class="punctuation token">(</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_host<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">';DATABASE='</SPAN><SPAN class="operator token">+</SPAN>str<SPAN class="punctuation token">(</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">';Uid='</SPAN><SPAN class="operator token">+</SPAN>str<SPAN class="punctuation token">(</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_user<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">';PWD='</SPAN><SPAN class="operator token">+</SPAN>str<SPAN class="punctuation token">(</SPAN>Config<SPAN class="punctuation token">.</SPAN>remote_db_password<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
cur <SPAN class="operator token">=</SPAN> con<SPAN class="punctuation token">.</SPAN>cursor<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Get Coordinates from another table to add to this feature layer</SPAN>
cur<SPAN class="punctuation token">.</SPAN>execute<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"SELECT t1.OBJECTID,t1.GROUP_OUTLINE_COORDS FROM PLANTS t1 LEFT JOIN MASSPLANTINGS t2 ON t2.PLANTID = t1.OBJECTID WHERE t2.PLANTID IS NULL AND t1.GROUP_OUTLINE_COORDS IS NOT NULL AND CURRENT_CONDITION != 'D' AND CURRENT_CONDITION != 'R' AND CURRENT_CONDITION != 'U'"</SPAN><SPAN class="punctuation token">)</SPAN>
data <SPAN class="operator token">=</SPAN> cur<SPAN class="punctuation token">.</SPAN>fetchall<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">del</SPAN> cur
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Connected to SQL Information Source Server"</SPAN><SPAN class="punctuation token">)</SPAN>
feature <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join <SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">,</SPAN> Config<SPAN class="punctuation token">.</SPAN>feature_dataset<SPAN class="punctuation token">,</SPAN>Config<SPAN class="punctuation token">.</SPAN>massplantsdb<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>MakeFeatureLayer_management <SPAN class="punctuation token">(</SPAN>feature<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"tmplyr"</SPAN><SPAN class="punctuation token">)</SPAN>
fieldsToUpdate <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'SHAPE@'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'PLANTID'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">with</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>InsertCursor<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"tmplyr"</SPAN><SPAN class="punctuation token">,</SPAN> fieldsToUpdate<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> icur<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Received SQL Data"</SPAN><SPAN class="punctuation token">)</SPAN>
counter <SPAN class="operator token">=</SPAN> <SPAN class="number token">0</SPAN>
group_coords <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Array<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
length <SPAN class="operator token">=</SPAN> len<SPAN class="punctuation token">(</SPAN>data<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> plant <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN>
counter<SPAN class="operator token">+=</SPAN><SPAN class="number token">1</SPAN>
coord <SPAN class="operator token">=</SPAN> plant<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">' '</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> x<SPAN class="punctuation token">,</SPAN> y <SPAN class="keyword token">in</SPAN> zip<SPAN class="punctuation token">(</SPAN>coord<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> coord<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
group_coords<SPAN class="punctuation token">.</SPAN>add<SPAN class="punctuation token">(</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">(</SPAN>float<SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN>float<SPAN class="punctuation token">(</SPAN>y<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
icur<SPAN class="punctuation token">.</SPAN>insertRow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>Polygon<SPAN class="punctuation token">(</SPAN>group_coords<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN>plant<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
group_coords<SPAN class="punctuation token">.</SPAN>removeAll<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Done'</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Cleanup the cursor if necessary</SPAN>
<SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">del</SPAN> cur
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Deleted cur"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">except</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">'No Cursor'</SPAN><SPAN class="punctuation token">)</SPAN>
edit<SPAN class="punctuation token">.</SPAN>stopOperation<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
edit<SPAN class="punctuation token">.</SPAN>stopEditing<SPAN class="punctuation token">(</SPAN><SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>ChangeVersion_management<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'tmplyr'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"TRANSACTIONAL"</SPAN><SPAN class="punctuation token">,</SPAN> parentVersion<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>ReconcileVersions_management <SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> parentVersion<SPAN class="punctuation token">,</SPAN> versionName<SPAN class="punctuation token">,</SPAN> with_post <SPAN class="operator token">=</SPAN> <SPAN class="string token">"POST"</SPAN><SPAN class="punctuation token">,</SPAN> with_delete <SPAN class="operator token">=</SPAN> <SPAN class="string token">"DELETE_VERSION"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>Delete<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN>
os<SPAN class="punctuation token">.</SPAN>remove<SPAN class="punctuation token">(</SPAN>workspace<SPAN class="punctuation token">)</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>I am using basically this exact same code for point data and it works without having use the editor or versioning.
Here's the output from above with a little bit changed to "protect the innocent" 
c:\folder\propy.bat plants_to_mass_plantings.py
Starting
Version Created
Workspace: c:\temp\tmp.sde
Deleting Existing SDE File
Database Connection Properties:
Server: sqlserver.domainname.com
Instance: sde:sqlserver:sqlserver.domainname.com
Database: arboretum
Is GeoDatabase: true
User: db_admin
Version: dbo.DEFAULT
Workspace Type: RemoteDatabase
You are in an edit session
Connected to SQL Information Source Server
Received SQL Data
Traceback (most recent call last):
File "plants_to_mass_plantings.py", line 78, in <module>
icur.insertRow([arcpy.Polygon(group_coords),plant[0]])
RuntimeError: workspace already in transaction mode<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>