Skip to main content

External Package Dependencies

Definition

Every language that Shipyard supports has packages that can be installed to enhance the functionality and simplicity of your scripts. If your script uses an external package, you'll have to tell Shipyard what packages to install before the script can run successfully.

There are 2 options in the platform for installing packages. How you enter this information varies by language.

Pro Tip

If you're uploading code directly to Shipyard, we recommend installing packages using the Packages Panel so that team members can quickly view and change the version.

If you're using a Git connection, we recommend including a packages file in the root directory of your repository. Shipyard will automatically find this file and install dependencies.

danger

You must choose one option or the other. Using both simultaneously will result in packages not being installed properly.

Setup

Option 1 - Use the Packages Panel

When you build a Vessel or Blueprint with Python, it comes with the latest version of pip pre-installed, allowing you to easily install python package dependencies. These packages can be listed out under the Python Packages Panel.

Packages should be formatted with the Package Name field filled out. Optionally, you can include a version for each package name that you've listed. Versions must be formatted according to Python standards.

In order to install public packages from GitHub (that are not available on PyPi, or for different versions) you will need to use the git+git scheme with the GitHub URL.

git+git://github.com/pandas-dev/pandas@master

Python Packages

Option 2 - Uploading a Packages File

You can also install package dependencies by including a requirements.txt file in any directory of the code you upload. Shipyard will automatically find this file and install all of the listed dependencies on it.

For more information on how requirements.txt should be formatted, read this guide.

caution

Make sure you only provide one requirements.txt. Having multiple can result in issues installing packages correctly.

caution

Providing an inaccurate list of package dependencies will result in the following error when you run your script:

ModuleNotFoundError: No module named 'xxxx'

If this occurs, please check out our troubleshooting guide for help listing dependencies.

Additional Notes

  1. Because Vessels are containerized, the packages you install will only be available for that Vessel.