jnmclarty / pyenvdiff-lib

Python environment comparison tool

Home Page:http://pyenvdiff.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python 3.6 Issues with YAML export

rfoliva opened this issue · comments

  • PyEnvDiff version: 0.1.0
  • Python version: 3.6.0
  • Operating System: Darwin Rick-Laptop-SOHO-LAN 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64

Description

I have been playing with the package since yesterday. A number of times, I have experienced issues when trying to output data to yaml file, failing with error message regarding failure to

I ran into this a number of times yesterday while attempting to output the yaml feature, without success but realized today I was only trying on 3.6. So I tried pip installing it on Python 2.7.13 and it worked like a charm.

So I tried the 3.6 again on a brand new venv and it failed with error message on failing to import yaml. So I pip installed PyYAML and it worked fine. To confirm, I pip uninstalled PyYAML, and it failed again, as per output below.

It seems like some versions of Python 3.6 require PyYAML

What I Did

(test3.6) Rick-Laptop-SOHO-LAN:test3.6 rfoliva$ python -m pyenvdiff.info test.yaml
/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py:125: RuntimeWarning: 'pyenvdiff.info' found in sys.modules after import of package 'pyenvdiff', but prior to execution of 'pyenvdiff.info'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))

OSUname
*******
Darwin Rick-Laptop-SOHO-LAN 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64

PipDistributions
****************
pyyaml 3.12 3.12 PyYAML None 3.6 /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages
pip 9.0.1 9.0.1 pip None None /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages
pyenvdiff 0.1.0 0.1.0 pyenvdiff None None /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages
setuptools 28.8.0 28.8.0 setuptools None None /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages

PkgutilModules
**************
asyncio
collections
concurrent
ctypes
curses
dbm
distutils
email
encodings
ensurepip
html
http
idlelib
importlib
json
lib2to3
logging
multiprocessing
pip
pkg_resources
pydoc_data
pyenvdiff
setuptools
sqlite3
test
tkinter
turtledemo
unittest
urllib
venv
wsgiref
xml
xmlrpc
yaml

Platform
********
Darwin-16.4.0-x86_64-i386-64bit | i386 | 64bit |

SysApiVersion
*************
1013

SysByteOrder
************
little

SysExecutable
*************
/Users/rfoliva/Dev_Sandbox/test3.6/bin/python

SysFloatInfo
************
1.7976931348623157e+308 1024 308 2.2250738585072014e-308 -1021 -307 15 53 2.220446049250313e-16 2 1

SysPath
*******

/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python36.zip
/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6
/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload
/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages

SysPlatform
***********
darwin

SysVersion
**********
3.6.0 (default, Dec 26 2016, 20:33:09)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]

SysVersionInfo
**************
3.6.0.final.0

TimeZone
********
18000 | EST | EDT

Stored yaml version of environment information to test.yaml
(test3.6) Rick-Laptop-SOHO-LAN:test3.6 rfoliva$ pip uninstall PyYAML
Uninstalling PyYAML-3.12:
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/PyYAML-3.12-py3.6.egg-info
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/_yaml.cpython-36m-darwin.so
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__init__.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/__init__.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/composer.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/constructor.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/cyaml.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/dumper.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/emitter.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/error.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/events.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/loader.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/nodes.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/parser.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/reader.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/representer.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/resolver.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/scanner.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/serializer.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/__pycache__/tokens.cpython-36.pyc
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/composer.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/constructor.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/cyaml.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/dumper.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/emitter.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/error.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/events.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/loader.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/nodes.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/parser.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/reader.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/representer.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/resolver.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/scanner.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/serializer.py
  /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/yaml/tokens.py
Proceed (y/n)? y
  Successfully uninstalled PyYAML-3.12
(test3.6) Rick-Laptop-SOHO-LAN:test3.6 rfoliva$ python -m pyenvdiff.info test.yaml
/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py:125: RuntimeWarning: 'pyenvdiff.info' found in sys.modules after import of package 'pyenvdiff', but prior to execution of 'pyenvdiff.info'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))

OSUname
*******
Darwin Rick-Laptop-SOHO-LAN 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64

PipDistributions
****************
pip 9.0.1 9.0.1 pip None None /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages
pyenvdiff 0.1.0 0.1.0 pyenvdiff None None /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages
setuptools 28.8.0 28.8.0 setuptools None None /Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages

PkgutilModules
**************
asyncio
collections
concurrent
ctypes
curses
dbm
distutils
email
encodings
ensurepip
html
http
idlelib
importlib
json
lib2to3
logging
multiprocessing
pip
pkg_resources
pydoc_data
pyenvdiff
setuptools
sqlite3
test
tkinter
turtledemo
unittest
urllib
venv
wsgiref
xml
xmlrpc

Platform
********
Darwin-16.4.0-x86_64-i386-64bit | i386 | 64bit |

SysApiVersion
*************
1013

SysByteOrder
************
little

SysExecutable
*************
/Users/rfoliva/Dev_Sandbox/test3.6/bin/python

SysFloatInfo
************
1.7976931348623157e+308 1024 308 2.2250738585072014e-308 -1021 -307 15 53 2.220446049250313e-16 2 1

SysPath
*******

/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python36.zip
/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6
/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload
/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages

SysPlatform
***********
darwin

SysVersion
**********
3.6.0 (default, Dec 26 2016, 20:33:09)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]

SysVersionInfo
**************
3.6.0.final.0

TimeZone
********
18000 | EST | EDT
/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/pyenvdiff/import_macros.py:64: UserWarning: Coundn't import yaml.  This flavour of python isn't compatible with pyenvdiff, yet.  Please file an issue at github.com/jnmclarty/pyenvdiff.
  warn("Coundn't import yaml.  " + compatibility + instructions)
Traceback (most recent call last):
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/pyenvdiff/info.py", line 146, in <module>
    env.to_yaml(fname)
  File "/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/pyenvdiff/info.py", line 128, in to_yaml
    self._to_yaml_fs(outfile)
  File "/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/pyenvdiff/info.py", line 105, in _to_yaml_fs
    yaml = import_yaml()
  File "/Users/rfoliva/Dev_Sandbox/test3.6/lib/python3.6/site-packages/pyenvdiff/import_macros.py", line 65, in import_yaml
    return yaml
UnboundLocalError: local variable 'yaml' referenced before assignment
(test3.6) Rick-Laptop-SOHO-LAN:test3.6 rfoliva$

Thanks for the bug report.

I just tried it on a fresh 3.6 conda environment on Windows, without pyYAML, and it worked.

I'll look into this further, either tomorrow night or Saturday afternoon.