Forum Discussion

matju's avatar
matju
Senior Member
9 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

  • 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")

     

     

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.