8000 System.ArgumentException: Illegal characters in path · Issue #2376 · pythonnet/pythonnet · GitHub
[go: up one dir, main page]

Skip to content

System.ArgumentException: Illegal characters in path #2376

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
manju1847 opened this issue May 7, 2024 · 9 comments · Fixed by #2383
Closed

System.ArgumentException: Illegal characters in path #2376

manju1847 opened this issue May 7, 2024 · 9 comments · Fixed by #2383

Comments

@manju1847
Copy link

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.

@filmor
Copy link
Member
filmor commented May 7, 2024

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".

@filmor filmor closed this as not planned Won't fix, can't repro, duplicate, stale May 7, 2024
@manju1847
Copy link
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.

@manju1847
Copy link
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)

@lostmsu
Copy link
Member
lostmsu commented May 10, 2024

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

@manju1847
Copy link
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;

@lostmsu
8000
Copy link
Member
lostmsu commented May 10, 2024

@manju1847 no, sys.path of Python.

@manju1847
Copy link
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']

@lostmsu
Copy link
Member
lostmsu commented May 10, 2024

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

@lostmsu lostmsu reopened this May 10, 2024
lostmsu added a commit to losttech/pythonnet that referenced this issue May 10, 2024
lostmsu added a commit to losttech/pythonnet that referenced this issue May 10, 2024
lostmsu added a commit to losttech/pythonnet that referenced this issue May 10, 2024
lostmsu added a commit to losttech/pythonnet that referenced this issue May 10, 2024
lostmsu added a commit to losttech/pythonnet that referenced this issue May 10, 2024
lostmsu added a commit to losttech/pythonnet that referenced this issue May 10, 2024
filmor pushed a commit that referenced this issue May 11, 2024
@manju1847
Copy link
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
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants
0