title: PyInstaller and PythonNet CLR
body: <p>ok, I need some help with pyinstaller and PythonNet.</p>
  
  <p>This is my first time posting to the forum and I'm relatively inexperienced with coding but I've been learning a little python for GUI development.  I've got a script that uses a .NET dll library to interface with a USB camera. The script runs properly in Python, but I'm trying to compile it to .exe via Pyinstaller and I'm getting stuck. </p>
  
  <p>Here are the first few lines of code:</p>
  
  <pre><code>import os
  import clr
  import sys
  import System
  from System import IntPtr
  </code></pre>
  
  <p>And here's the error after running the compiled .exe file:</p>
  
  <blockquote>
    <p>Unhandled Exception: System.IO.FileLoadException: Could not load file or assembl
    y 'Python.Runtime, Version=4.0.0.1, Culture=neutral, PublicKeyToken=5000fea6cba7
    02dd' or one of its dependencies. The located assembly's manifest definition doe
    s not match the assembly reference. (Exception from HRESULT: 0x80131040)
       at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String cod
    eBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&amp;
    stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntro
    spection, Boolean suppressSecurityChecks)
       at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String code
    Base, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&amp; s
    tackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntros
    pection, Boolean suppressSecurityChecks)
       at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName as
    semblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMar
    k&amp; stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIn
    trospection, Boolean suppressSecurityChecks)
       at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
       at clrModule.initclr()</p>
  </blockquote>
  
  <p>I think the issue with python.runtime is similar to the one posted here (<a href="https://github.com/pythonnet/pythonnet/issues/34" rel="nofollow">https://github.com/pythonnet/pythonnet/issues/34</a>) but I've tried the recommended solution and I'm still getting the same error. i.e. I uninstalled pythonnet and then searched for and deleted any remaining clr.pyd or python.runtime.dll files.  Then re-installed using pip via the command prompt:</p>
  
  <blockquote>
    <p>"pip install --pre pythonnet"</p>
  </blockquote>
  
  <p>After compiling my script, python.runtime.dll appears in the "dist" folder along with the exe file.  But there's something weird going on with the version numbers.  Right clicking the dll and viewing "properties" in windows lists the version as 2.0.0.2, but viewing the assembly info (with dotPeek) for the same file it is listed as 4.0.0.1.  What's going on here?</p>
  
  <p>Here are the screenshots showing the version discrepancy:</p>
  
  <p><a href="http://imagizer.imageshack.us/v2/702x235q90/661/FLbf3n.jpg" rel="nofollow">dll assembly screenshot shows version 4.0.0.1</a></p>
  
  <p>[windows properties screenshot showing version 2.0.0.2]</p>
  
  <p>imagizer.imageshack.us/v2/381x520q90/902/6DEzLM.jpg 
  (sorry, I can't make this one a link)</p>
  
  <p>Please note I'm running Python 2.7 (32-bit) on Windows 7 (64-bit).  Also, initially I got an error during compiling because Pyinstaller couldn't find the python.runtime.dll needed by CLR, but I modified the clr-hook.py to include the full dll path, so now it compiles without error but something is still clearly not right. Here's the new hook:</p>
  
  <pre><code>    ##hook-clr.py 
  
      import ctypes.util  
      datas = [(ctypes.util.find_library('C:\\Python27\\lib\\site-packages\\Python.Runtime'), '')]
  </code></pre>
  
  <p>And here's the output of pyinstaller during compilation: </p>
  
  <pre><code>C:\Users\M80\Desktop\RealTimeBeamAnalysis&gt; pyinstaller Realtime_3_exec.py
  
  219 INFO: wrote C:\Users\M80\Desktop\RealTimeBeamAnalysis\Realtime_3_exe
  c.spec
  263 INFO: Testing for ability to set icons, version resources...
  455 INFO: ... resource update available
  462 INFO: UPX is not available.
  516 INFO: Processing hook hook-os
  697 INFO: Processing hook hook-time
  703 INFO: Processing hook hook-cPickle
  804 INFO: Processing hook hook-_sre
  986 INFO: Processing hook hook-cStringIO
  1118 INFO: Processing hook hook-encodings
  1137 INFO: Processing hook hook-codecs
  2354 INFO: Processing hook hook-httplib
  2360 INFO: Processing hook hook-email
  2519 INFO: Processing hook hook-email.message
  2970 INFO: Processing hook hook-clr
  3061 WARNING: library python%s%s required via ctypes not found
  3298 INFO: Extending PYTHONPATH with C:\Users\M80\Desktop\RealTimeBeamAn
  alysis
  3299 INFO: checking Analysis
  3299 INFO: building Analysis because out00-Analysis.toc non existent
  3299 INFO: running Analysis out00-Analysis.toc
  3299 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable
  
  3393 INFO: Searching for assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21
  022.8_none ...
  3394 INFO: Found manifest C:\Windows\WinSxS\Manifests\x86_microsoft.vc90.crt_1fc
  8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91.manifest
  3413 INFO: Searching for file msvcr90.dll
  3414 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_
  9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll
  3414 INFO: Searching for file msvcp90.dll
  3414 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_
  9.0.21022.8_none_bcb86ed6ac711f91\msvcp90.dll
  3416 INFO: Searching for file msvcm90.dll
  3416 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_
  9.0.21022.8_none_bcb86ed6ac711f91\msvcm90.dll
  3541 INFO: Analyzing C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.e
  gg\PyInstaller\loader\_pyi_bootstrap.py
  3562 INFO: Processing hook hook-os
  3582 INFO: Processing hook hook-site
  3608 INFO: Processing hook hook-encodings
  3748 INFO: Processing hook hook-time
  3752 INFO: Processing hook hook-cPickle
  3840 INFO: Processing hook hook-_sre
  3996 INFO: Processing hook hook-cStringIO
  4131 INFO: Processing hook hook-codecs
  4654 INFO: Processing hook hook-httplib
  4657 INFO: Processing hook hook-email
  4799 INFO: Processing hook hook-email.message
  5021 INFO: Processing hook hook-clr
  5094 WARNING: library python%s%s required via ctypes not found
  5378 INFO: Processing hook hook-pydoc
  5513 INFO: Analyzing C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.e
  gg\PyInstaller\loader\pyi_importers.py
  5680 INFO: Analyzing C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.e
  gg\PyInstaller\loader\pyi_archive.py
  5831 INFO: Analyzing C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.e
  gg\PyInstaller\loader\pyi_carchive.py
  5963 INFO: Analyzing C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.e
  gg\PyInstaller\loader\pyi_os_path.py
  5982 INFO: Analyzing Realtime_3_exec.py
  6026 INFO: Processing hook hook-PyQt4
  6038 INFO: Processing hook hook-PyQt4.QtCore
  6322 INFO: Processing hook hook-PyQt4.QtGui
  8180 INFO: Processing hook hook-matplotlib
  8298 INFO: Processing hook hook-PIL
  8386 INFO: Processing hook hook-PIL.Image
  9391 INFO: Processing hook hook-distutils
  9837 INFO: Processing hook hook-parser
  10396 INFO: Processing hook hook-sysconfig
  10493 INFO: Processing hook hook-xml
  10580 INFO: Processing hook hook-xml.sax
  10618 INFO: Processing hook hook-pyexpat
  11866 INFO: Processing hook hook-setuptools
  12416 INFO: Processing hook hook-win32com
  12434 INFO: Processing hook hook-win32com.client
  12562 INFO: Processing hook hook-pythoncom
  12647 INFO: Processing hook hook-pywintypes
  12771 INFO: Processing hook hook-win32ui
  13937 INFO: Processing hook hook-scipy.special._ufuncs
  13979 INFO: Processing hook hook-Image
  14680 INFO: Processing hook hook-pycparser
  15338 INFO: Processing hook hook-PIL.SpiderImagePlugin
  15522 INFO: Processing hook hook-_tkinter
  15863 INFO: checking Tree
  15865 INFO: building because out00-Tree.toc missing or bad
  15866 INFO: building Tree out00-Tree.toc
  16239 INFO: checking Tree
  16240 INFO: building because out01-Tree.toc missing or bad
  16241 INFO: building Tree out01-Tree.toc
  16338 INFO: Processing hook hook-scipy.sparse.csgraph
  18598 INFO: Processing hook hook-pytz
  C:\Python27\lib\site-packages\matplotlib\backends\backend_qt.py:11: MatplotlibDe
  precationWarning: QT3-based backends are deprecated and will be removed after th
  e v1.2.x release. Use the equivalent QT4 backend instead.
    mplDeprecation)
  33262 INFO: Processing hook hook-matplotlib.backends
  34985 INFO: Processing hook hook-PyQt4.QtOpenGL
  34990 INFO: Processing hook hook-PyQt4.QtSvg
  35388 INFO: Processing hook hook-anydbm
  36676 INFO: Processing hook hook-h5py
  40292 INFO: Processing hook hook-IPython
  46546 INFO: Processing hook hook-OpenGL
  47113 INFO: Processing hook hook-OpenGL_accelerate
  49549 INFO: Processing hook hook-zmq
  50545 INFO: Processing hook hook-xml.dom
  50582 INFO: Processing hook hook-xml.dom.domreg
  55157 INFO: Processing hook hook-docutils
  56850 INFO: Processing hook hook-pygments
  57268 INFO: Processing hook hook-pygments.lexers
  57973 INFO: Processing hook hook-pygments.formatters
  58388 INFO: Processing hook hook-pygments.styles
  60513 INFO: Processing hook hook-sqlite3
  62490 INFO: Processing hook hook-lxml.etree
  62500 INFO: Processing hook hook-xml.etree.cElementTree
  62529 INFO: Processing hook hook-_elementtree
  63798 INFO: Hidden import 'codecs' has been found otherwise
  63799 INFO: Hidden import 'encodings' has been found otherwise
  63799 INFO: Looking for run-time hooks
  63805 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_pkgres.py
  64029 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_Image.py
  64170 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_qt4plugins.py
  64285 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_mplconfig.py
  64420 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_mpldata.py
  64534 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_win32comgenpy.py
  64672 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_PIL_Image.py
  64797 INFO: Analyzing rthook C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_
  -py2.7.egg\PyInstaller\loader\rthooks\pyi_rth_Tkinter.py
  70305 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of
  final executable
  73703 INFO: Adding Microsoft.VC90.MFC to dependent assemblies of final executabl
  e
  73792 INFO: Searching for assembly x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.2
  1022.8_none ...
  73792 INFO: Found manifest C:\Windows\WinSxS\Manifests\x86_microsoft.vc90.mfc_1f
  c8b3b9a1e18e3b_9.0.21022.8_none_b81d038aaf540e86.manifest
  73804 INFO: Searching for file mfc90.dll
  73804 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b
  _9.0.21022.8_none_b81d038aaf540e86\mfc90.dll
  73805 INFO: Searching for file mfc90u.dll
  73805 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b
  _9.0.21022.8_none_b81d038aaf540e86\mfc90u.dll
  73805 INFO: Searching for file mfcm90.dll
  73805 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b
  _9.0.21022.8_none_b81d038aaf540e86\mfcm90.dll
  73805 INFO: Searching for file mfcm90u.dll
  73807 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b
  _9.0.21022.8_none_b81d038aaf540e86\mfcm90u.dll
  84271 INFO: Using Python library C:\Windows\system32\python27.dll
  99841 INFO: Warnings written to C:\Users\M80\Desktop\RealTimeBeamAnalysi
  s\build\Realtime_3_exec\warnRealtime_3_exec.txt
  99993 INFO: checking PYZ
  99995 INFO: rebuilding out00-PYZ.toc because out00-PYZ.pyz is missing
  99996 INFO: building PYZ (ZlibArchive) out00-PYZ.toc
  137450 INFO: checking PKG
  137450 INFO: rebuilding out00-PKG.toc because out00-PKG.pkg is missing
  137450 INFO: building PKG (CArchive) out00-PKG.pkg
  137516 INFO: checking EXE
  137518 INFO: rebuilding out00-EXE.toc because Realtime_3_exec.exe missing
  137519 INFO: building EXE from out00-EXE.toc
  137590 INFO: Appending archive to EXE C:\Users\M80\Desktop\RealTimeBeamA
  nalysis\build\Realtime_3_exec\Realtime_3_exec.exe
  137690 INFO: checking COLLECT
  137690 INFO: building COLLECT out00-COLLECT.toc
  </code></pre>