CloudLinux - CloudLinux Blog - Production release of our client Python Selector

Production release of our client Python Selector


The production version of client Python Selector for cPanel and DirectAdmin with updated LVE Manager version 5.0.6-2 package are available for download from our production repository.

About two months of beta testing and your positive feedback shows new Python Selector goes swimmingly, so it’s time to move it to production!

I just want to refresh your memory with all those new features you can now have in new Python Selector in case you missed beta Python Selector release.

What’s new

  • Environment variables

    Now, you can configure the environment variables that are available in the application. You can set them when creating an application, or modify them later (don’t forget to restart the application). In the old Python Selector, you could configure them only with workarounds.

  • The ability to start/stop applications

    Now, you can not only restart your applications, but you can also start/stop them at any time (e.g. for debugging or maintenance). Previously, you could do that only with workarounds.

  • Config files UI management

    Now, you can configure a set of “config files” for your application and edit them directly from the UI. This avoids re-uploading files every time you need to change something temporarily (e.g. “Requirements” files or debug/logging mode etc.).

  • The ability to enable/disable Python Selector and particular Python version

    Now, you can enable/disable Python Selector for all users so they won’t be able to manage their applications as well as enable/disable a particular Python version.

  • The ability to set the default Python version both in CloudLinux Installation Wizard and in Python Selector

Sounds good, doesn’t it? But there's more to come.

Significant Changes

Instead of managing modules individually, as in the old Python Selector, you can now install all required modules for an application by specifying the proper requirements files and triggering an installation action either via the UI or the CLI.


All existing Python applications (created before the update of LVE Manager to version 5.0.6-2) will work the same as before. You do not need to migrate them unless you’d like to use the new features. We define these applications as “old applications“.

There are some risks with the migration process and it can fail. To avoid any problems, and make it easier to solve any, only the user who created a particular application is allowed to start the migration process.

You do not need to migrate any new applications created after the update to LVE Manager 5.0.1-1. All new features are available to them.

You cannot migrate back to old applications. If you have any issues with the migration, please contact our support team.

You can find more details on migrating an application in the Python Selector documentation.

New modern UI

Here’s a preview of our fresh, clear, and user-friendly client Python Selector UI—enjoy it!

Python Selector

Python Selector

What’s next

We are still developing our Python Selector and would really like to know what you think about these features:

  • Execute command in the application’s virtual environment in the UI

    We are considering whether it’s really needed because it lets end-users bypass disabled any SSH restrictions set by the administrator. However, it is available in the old Python Selector.

  • Remove one module from the application’s virtual environment

    Currently, you can do this only via the CLI, using either with the cloudlinux-selector uninstall-modules command or directly with the pip command in the activated virtual environment. We are considering implementing this feature in the UI in the future.

  • Switch application version in the administrator UI

    For now, the administrator is not allowed to change the application version; only the user can do that. But the user can have some old applications that were not migrated to the new Python Selector and the administrator should have the ability to switch application version for those old applications.

Disabled Functionality

We found some outdated functionality and see no reason to continue supporting it:

  • backward compatibility of the new Python Selector with the selectorctl command line tool
  • the ability to install separate modules via UI will be disabled
  • the ability to run any command from UI will be disabled for security reasons

We’ll be more than happy if you take part in a survey regarding the Python Selector. You can find it here.

Update command

yum update lvemanager alt-python27-cllib lve-utils cagefs

Downgrade command

yum downgrade lvemanager alt-python27-cllib lve-utils cagefs



  • implemented new Python Selector
  • LVEMAN-1497: Automatically generate requirements file with extensions upon importing legacy apps Part II (Security fix. Cllib free)
  • WEB-1449: Implement new PHP Selector for DirectAdmin
  • WEB-1510: Load assets from images folder in DirectAdmin
  • WEB-1501: Add information about possible problems with pip packages
  • WEB-1207: Provide blocking of creating application when passenger is not installed
  • WEB-1439: Add select all versions on Wizard page in version lists (all Selectors)
  • WEB-1521: Template parse errors when try to open Python Selector
  • LVEMAN-1525 : Do not write empty python-selector.json if no python applications are found during import
  • WEB-1461: Create notification angular service for showing multiple notifications
  • WEB-1462: Layout new design according mockup for action notifications
  • LVEMAN-1505: Investigate "moved home dir" cases for Python/Node.js Selectors
  • LVEMAN-1528 : PHP Selector shows error in user's cPanel
  • WEB-1507: Implement displaying of Python Selector on the Dashboard and Wizard for DirectAdmin
  • LVEMAN-1538: cloudlinux-selector should not get info about domains of user for PHP interpreter
  • LVEMAN-1513 Wrong error message for permission denied
  • LVEMAN-1506: We should return Passenger status for PySelector like we already do for Node.js
  • LVEMAN-1521 : Traceback in python selector when disk quota exceeded
  • WEB-1503: Incorrect message for admin in php selector if no versions of alt-php were installed
  • LVEMAN-1446: Replace passenger doc URL in error message during python app creation. Part II
  • WEB-1514: Ignore auto_prepend_file and auto_append_file when get PHP ini defaults
  • LU-1312: Python application migration should work with small quota
  • LVEMAN-1512: Add deprecation warning to --help of selectorctl and stubs for some its commands
  • WEB-1482: Integration tests for python application migration script
  • WEB-1502: Hide python icon when it disabled in DirectAdmin
  • WEB-1493: Do not show error about sentry
  • WEB-1508: An error during changing parameters in new PHP Selector
  • LU-1305 Collect default version for Python Selector
  • LU-1324 Handle postmodifyacct_main for Python Selector
  • LU-1347 selectorctl update-interpreter should work with stopped Python apps
  • LU-1348 migration for the stopped python application should finish successfully or give readable message
  • WEB-1525: Develop PoC for universal integration non-panel version
  • LU-1346 : cloudlinux-selector import-applications should work correct for reseller users in DirectAdmin
  • WEB-1444: Implement current usage user page according mockup
  • WEB-1207: Provide blocking of creating application when passenger is not installed(part II)
  • LU-1309 fix traceback in CloudLinux Wizard during yum cache update
  • WEB-1522: Fix retrieving PHP info for user via cloudlinux-selector without sudo
  • WEB-1533: Minimize legacy application size for protractor tests
  • WEB-1531: Dashboard : page should automatically refresh after refreshing statistics
  • WEB-1536: Ignore and do not show parameter hidePythonApp from cloudlinux-config in web interface
  • WEB-1523: On Evolution theme LVE Manager does not show stats only on Safari
  • WEB-1513: New PHP Selector native version number showing
  • WEB-1434: list-reseller command don't work using API
  • LVEMAN-1546 DirectAdmin admins should not be added to root group when fs.proc_super_gid kernel parameter is not set (kernel -efault is 0)
  • LVEMAN-1549 Fix Traceback during importing Python application if missed
  • LVEMAN-1544 Handle domain unpark hook for cpanel


  • LVEMAN-1497 Automatically generate requirements file with extensions upon importing legacy apps
  • WEB-1515: Ignore not utf-8 characters in /etc/cl.selector/php.conf
  • LU-1334: Users were missing in LVE Manager Users tab
  • LU-1324: handle postmodifyacct_main for Python Selector


  • LVES-957 : charset in lve-stats2 notifications
  • LU-1318 Allow cloudlinux-wizard to set default Python version
  • LU-1310 Implement collecting statistic about Python Selector on DirectAdmin
  • WEB-1434: list-reseller command don't work using API
  • LU-1291 wizard should run {{cagefsctl --force-update}} after installation of packages selected by user
  • LU-1334: Users were missing in LVE Manager Users tab
  • LU-1335: Cldiag error {{check-cpanel-packages}} if users list is empty
  • LU-1317 cldiag should ignore/cut the space before/after the Package name


  • CAG-935: handle the case when php file is a symlink to path mounted to CageFS on server with cPanel EA4
  • CAG-929: Investigate cagefs package installation errors on new cPanel 80 install
  • CAG-887: CageFS should not fail when there is no free inodes on disk
  • WEB-1523: On Evolution theme LVE Manager does not show stats only on safari
  • CAG-914 : [|] fails to set extProcessor setting in LiteSpeed config file
  • CAG-916: set cagefs=yes in options.conf when installing CageFS on DirectAdmin server


  • LVES-957: charset in lve-stats2 notifications
Beta: ImunifyAV 4.3.0 updated
Client PHP Selector for DirectAdmin—production rel...

By accepting you will be accessing a service provided by a third-party external to

EU e-Privacy Directive

We use cookies to ensure you get the best experience using our website and services. Read more about it in our Privacy Policy. Please agree to the use of cookies to proceed. Alternatively, you may disable cookies in your browser at any time.

You have declined cookies. This decision can be reversed.

You have allowed cookies to be placed on your computer. This decision can be reversed.