Forum Discussion

matju's avatar
matju
Senior Member
10 years ago
Solved

Calling 3rd party packages from scripts written in Python

Hello,

 

I'm trying to import external 3rd party packages from my scripts written in Python language. Is there a way to use Python installed in different folder? I was trying to use default "site-packages" folder - I added 3rd party package to the folder, also copied whole content, installed it from commad line (by using PIP) and tried to call it from script, but TestComplete shows: "no module named requests".

 

I wrote in script also:

 

from os import sys
sys.path.append("C:\Data\Python\Lib\site-packages")

 

 

and then try to import 3rd party module, but there's also no effect. I don't want to use PyUnit, so is there any way to load 3rd party package in TestComplete in scripts?

 

Best Regards,

matju

7 Replies

  • TestComplete installs it's own python instance so the third-party package in the site-packages folder won't work. If you copy the third-party package you want from the site-packages into the TestComplete python folder it will work.

     

    For example I use the pytz and tzlocal packages. After installing through pip, I copied those folders from the site-packages folder into C:\Program Files\SmartBear\TestComplete 11\Bin\Extensions\Python\Python34\Lib . Then just import like regular and it should work.

     

     

    I think you could also add the site-packages folder to the sys path like you are in your code, I think the mistake you are making is not escaping the backslash character in your string or using a raw string. So it should be sys.path.append("C:\\Data\\Python\\Lib\\site-packages") or sys.path.append(r"C:\Data\Python\Lib\site-packages")

     

     

    • danalu's avatar
      danalu
      Contributor

      But i still encounter error:

      ImportError

      No module named 'win32com' 

       

      i have copy site-packages from C:\Program Files (x86)\Python36-32\Lib\site-packages  to C:\Program Files (x86)\SmartBear\TestComplete 12\Bin\Extensions\Python\Python34\Lib\site-packages

       

      but seem not working. when i try to import:

      import win32com.client as win32

       

      • ghuff2's avatar
        ghuff2
        Contributor

        Did you copy your entire site-packages folder or just the win32com folder? You don't want the whole site-packages folder, only the folder of the third party package should go in the Lib folder, i.e. only copy the win32com folder into Lib, not entire site-packages.