• Please be aware: Kaspersky Anti-Virus has been deprecated
    With the upgrade to Plesk Obsidian 18.0.64, "Kaspersky Anti-Virus for Servers" will be automatically removed from the servers it is installed on. We recommend that you migrate to Sophos Anti-Virus for Servers.
  • The Horde webmail has been deprecated. Its complete removal is scheduled for April 2025. For details and recommended actions, see the Feature and Deprecation Plan.
  • We’re working on enhancing the Monitoring feature in Plesk, and we could really use your expertise! If you’re open to sharing your experiences with server and website monitoring or providing feedback, we’d love to have a one-hour online meeting with you.

Resolved python import on Plesk server

DavidMoksha

New Pleskian
I'm writing not as a host, but as a customer of a webhost that uses Plesk Parallels.

I've written a couple simple python scripts to test python on my host, before embarking on a serious project. They are: foo.py and bar.py

If within foo.py I do:
import bar

I get an error in the error.log: ImportError: No module named bar

On my local computer, the import works just fine. People in python forums and IRC similarly advise that this should work just fine.

Why does this not work, and how can I import scripts in the same directory?

One thing I have noticed is that __name__ is not set to '__main__' when going to the url of a python script. Perhaps I am required to use a package? Is there anywhere a guide or tutorial to getting started with these issues programming python for Plesk?

Thanks in advance,
David
 
I have discovered a solution to this problem: the directory where the module resides must be added to the path. On my local machine, the current directory is part of the path; but apparently this is not so on the plesk server I'm using. Here is a code snippet others can use to solve the same problem (update the path to reflect the appropriate directory on your server)

import sys
sys.path.insert(0, '/var/www/vhosts/my.domain/httpdocs/projectdir/')
import bar​

So this works :)
 
Back
Top