Skip to content

System.ArgumentException: Illegal characters in path #2376

Closed

Description

@manju1847

Environment

  • Pythonnet version: 3.0.3
  • Python version: 3.10.11
  • Operating System: Windows 10
  • .NET Runtime: 4.5

Details

  • Trying to load DLL using AddReference.

import clr
clr.AddReference("C:\MyProject\TestFolder_Dependencies\MyDLLProject\Test.TA.MyVersion.Test.dll")

System.ArgumentException: Illegal characters in path.
at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
at System.IO.Path.Combine(String path1, String path2)
at Python.Runtime.AssemblyManager.d__15.MoveNext()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at Python.Runtime.AssemblyManager.LoadAssemblyPath(String name)
at Python.Runtime.CLRModule.AddReference(String name)

DLL is not a new implementation. Same DLL and same path was working fine with python 3.7 and PythonNET 2.4.0. This issue started happening when we upgraded python and Pythonnet versions.

Activity

  1. filmor commented on May 7, 2024

    @filmor
    Member

    This is not a support forum. If you are using backslashes in strings in Python (and really, almost all programming languages) you have to either escape them or use a raw string literal.In Python that would be r"blabla\blubb".

  2. manju1847 commented on May 7, 2024

    @manju1847
    Author

    Sorry it was a typo. Yes, I have escaped the back slash. Its nothing to do with backslash. Because same code works fine when tested with python 3.7 and PythonNET 2.4.0.

  3. manju1847 commented on May 10, 2024

    @manju1847
    Author

    Tried to load the same DLL using Assembly.LoadFrom(path) - this works without any issues. But clr.AddReference(path) throws Illegal characters in path exception.

    from System.Reflection import Assembly
    assembly = Assembly.LoadFrom(path)

  4. lostmsu commented on May 10, 2024

    @lostmsu
    Member

    @manju1847 can you share your sys.path? I suspect we stumble on something funky there.

  5. manju1847 commented on May 10, 2024

    @manju1847
    Author

    echo %PATH%
    C:\Program Files\IcedTeaWeb\WebStart\bin;C:\Program Files\Zulu\zulu-8-jre\bin;C:\Program Files (x86)\Zulu\zulu-8-jre\bin;C:\Program Files\Python310\Scripts;C:\Program Files\Python310;C:\Users\fnh3651\AppData\Local\Programs\Python\Python37-32;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\dotnet;C:\Users\fnh3651.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\Microsoft VS Code\bin;C:\Users\fnh3651\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\fnh3651\AppData\Local\Programs\Python\Python310;C:\Users\fnh3651\AppData\Local\Programs\Python\Python312\Scripts;C:\Users\fnh3651\AppData\Local\Programs\Python\Python312;C:\Users\fnh3651\AppData\Local\Programs\Python\Python37-32\Scripts;C:\Users\fnh3651\AppData\Local\Programs\Python\Python37-32;C:\Users\fnh3651\AppData\Local\Microsoft\WindowsApps;C:\Users\fnh3651.dotnet\tools;C:\TrueBeam\PyWinAuto_HAL_Dependencies\TDSConfigManager;

  6. lostmsu commented on May 10, 2024

    @lostmsu
    Member

    @manju1847 no, sys.path of Python.

  7. manju1847 commented on May 10, 2024

    @manju1847
    Author

    (client_env) C:\Automation\Main\drop_hal_pywinauto\TA_HAL>python --version
    Python 3.10.11

    (client_env) C:\Automation\Main\drop_hal_pywinauto\TA_HAL>where python
    C:\Automation\Main\drop_hal_pywinauto\client_env\Scripts\python.exe
    C:\Users\svc-pa-autbuild\AppData\Local\Programs\Python\Python310\python.exe
    C:\Users\svc-pa-autbuild\AppData\Local\Microsoft\WindowsApps\python.exe

    (client_env) C:\Automation\Main\drop_hal_pywinauto\TA_HAL>python
    Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    import sys
    print(sys.path)
    ['', 'C:\Automation\Main\drop_hal_pywinauto\TA_HAL\"TA_HAL"', 'C:\Users\svc-pa-autbuild\AppData\Local\Programs\Python\Python310\python310.zip', 'C:\Users\svc-pa-autbuild\AppData\Local\Programs\Python\Python310\DLLs', 'C:\Users\svc-pa-autbuild\AppData\Local\Programs\Python\Python310\lib', 'C:\Users\svc-pa-autbuild\AppData\Local\Programs\Python\Python310', 'C:\Automation\Main\drop_hal_pywinauto\client_env', 'C:\Automation\Main\drop_hal_pywinauto\client_env\lib\site-packages', 'C:\Automation\Main\drop_hal_pywinauto\client_env\lib\site-packages\win32', 'C:\Automation\Main\drop_hal_pywinauto\client_env\lib\site-packages\win32\lib', 'C:\Automation\Main\drop_hal_pywinauto\client_env\lib\site-packages\Pythonwin']

  8. lostmsu commented on May 10, 2024

    @lostmsu
    Member

    The first line seems suspicious. There are quotes in directory name. These are impossible on Windows.

  9. added 6 commits that reference this issue on May 10, 2024
    fe3ca4f
    1373cbc
    618e84a
    3b2958b
    eef9619
    eb61851
  10. added a commit that references this issue on May 11, 2024
    b112885
  11. manju1847 commented on May 11, 2024

    @manju1847
    Author

    The first line seems suspicious. There are quotes in directory name. These are impossible on Windows.

    You nailed it!!!! Yes, that is the root cause. After removing quotes from sys.path, AddReference is happy. Thanks a lot for helping to resolve this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions