• Debian 11 is approaching its end-of-life (vendor EOL date - August 31, 2026). Plesk Obsidian 18.0.80 will be the last release to support it.
    If you are running Plesk Obsidian on Debian 11, we recommend you upgrade those servers to Debian 12 using our dist-upgrade tool.
  • We plan to deprecate and remove the support for XML RPC protocol versions earlier than 1.6.9.1 in Plesk Obsidian 18.0.82. We strongly recommend that you update all existing integrations using earlier versions of the XML RPC protocol to comply with the version 1.6.9.1 specification.

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