pjkundert / cpppo

Communications Protocol Python Parser and Originator -- EtherNet/IP CIP
https://hardconsulting.com/products/6-cpppo-enip-api
Other
334 stars 109 forks source link

Python 2.6 incompatibility #2

Closed johanfforsberg closed 9 years ago

johanfforsberg commented 9 years ago

I tried installing cppio under Python 2.6 (CentOS 6) and I got this error:

Downloading/unpacking cpppo
  Downloading cpppo-2.9.1.tar.gz (202kB): 202kB downloaded
  Running setup.py egg_info for package cpppo
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/tmp/pip-build-johfor/cpppo/setup.py", line 14, in <module>
        if sys.version_info.major < 3:
    AttributeError: 'tuple' object has no attribute 'major'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/tmp/pip-build-johfor/cpppo/setup.py", line 14, in <module>

    if sys.version_info.major < 3:

AttributeError: 'tuple' object has no attribute 'major'

This is apparently only supported in >=2.7. I have no idea if there are other things preventing cpppo from working on 2.6, but at least it's a good idea to state somewhere that it's only compatible with 2.7 and up.

pjkundert commented 9 years ago

Nope, it is unit tested on 2.6; however, I clearly didn't test the setup.py installer on a 2.5 system! Pull requests appreciated -- I'm in Jerusalem right now so won't get to it for a few days...

On Wednesday, November 12, 2014, Johan Forsberg notifications@github.com wrote:

I tried installing cppio under Python 2.6 (CentOS 6) and I got this error:

Downloading/unpacking cpppo Downloading cpppo-2.9.1.tar.gz (202kB): 202kB downloaded Running setup.py egg_info for package cpppo Traceback (most recent call last): File "", line 16, in File "/tmp/pip-build-johfor/cpppo/setup.py", line 14, in if sys.version_info.major < 3: AttributeError: 'tuple' object has no attribute 'major' Complete output from command python setup.py egg_info: Traceback (most recent call last):

File "", line 16, in

File "/tmp/pip-build-johfor/cpppo/setup.py", line 14, in

if sys.version_info.major < 3:

AttributeError: 'tuple' object has no attribute 'major'

This is apparently only supported in >=2.7. I have no idea if there are other things preventing cpppo from working on 2.6, but at least it's a good idea to state somewhere that it's only compatible with 2.7 and up.

— Reply to this email directly or view it on GitHub https://github.com/pjkundert/cpppo/issues/2.

-pjk
datasim commented 9 years ago

Sorry, on a 2.6 system (writing this from my phone...)

On Wednesday, November 12, 2014, Perry Kundert notifications@github.com wrote:

Nope, it is unit tested on 2.6; however, I clearly didn't test the setup.py installer on a 2.5 system! Pull requests appreciated -- I'm in Jerusalem right now so won't get to it for a few days...

On Wednesday, November 12, 2014, Johan Forsberg <notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');> wrote:

I tried installing cppio under Python 2.6 (CentOS 6) and I got this error:

Downloading/unpacking cpppo Downloading cpppo-2.9.1.tar.gz (202kB): 202kB downloaded Running setup.py egg_info for package cpppo Traceback (most recent call last): File "", line 16, in File "/tmp/pip-build-johfor/cpppo/setup.py", line 14, in if sys.version_info.major < 3: AttributeError: 'tuple' object has no attribute 'major' Complete output from command python setup.py egg_info: Traceback (most recent call last):

File "", line 16, in

File "/tmp/pip-build-johfor/cpppo/setup.py", line 14, in

if sys.version_info.major < 3:

AttributeError: 'tuple' object has no attribute 'major'

This is apparently only supported in >=2.7. I have no idea if there are other things preventing cpppo from working on 2.6, but at least it's a good idea to state somewhere that it's only compatible with 2.7 and up.

— Reply to this email directly or view it on GitHub https://github.com/pjkundert/cpppo/issues/2.

-pjk

— Reply to this email directly or view it on GitHub https://github.com/pjkundert/cpppo/issues/2#issuecomment-62793234.

-pjk
pjkundert commented 9 years ago

I was incorrect -- cpppo was not unit tested under 2.6! I mis-remembered; I extensively tested one of packages it uses (greenery) under 2.6, but not cpppo!

This has been fixed; cpppo 2.9.2 now works correctly under Python 2.6, and installs correctly via pip. Due to some changes in how python -m executes modules, in order to run the cpppo.server.enip and cpppo.server.enip.client, you must specify the 'main' file explicitly, eg: 'python -m cpppo.server.enip.main --print TAGNAME=DINT[1000]'.