Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refine Python runtime environment #2388

Closed
21 tasks
georgemccabe opened this issue Dec 23, 2022 · 0 comments · Fixed by #2407
Closed
21 tasks

Refine Python runtime environment #2388

georgemccabe opened this issue Dec 23, 2022 · 0 comments · Fixed by #2407
Assignees
Labels
MET: Python Embedding priority: medium Medium Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Milestone

Comments

@georgemccabe
Copy link
Collaborator

georgemccabe commented Dec 23, 2022

There are some inconsistencies with the Python environment that is used to run Python Embedding in MET.

  • If the X.Y version of the Python instance in the user's PATH matches the X.Y version of Python used to install MET, then the packages from the user's version are used instead of the installed version. This means that if a required packages like numpy is not available in the user's version, then MET Python Embedding will fail unless MET_PYTHON_EXE is set.
  • Python Embedding scripts that read point obs need to import met_point_obs.py, which is not available in the python path. There is an existing MET issue (Enhance the MET point processing tools to read the Python 'point_data' variable instead of just 'met_point_data'. #2285) to support reading point_data directly into all MET tools that would resolve this issue.
  • It appears that the Python executable in the user's path is what is used to actual call Python Embedding logic (w/o MET_PYTHON_EXE), even though it may use the Python packages from the installed version (if the X.Y versions don't match). It would be good to ensure that the actual installed version is actually used in this case.

Describe the Enhancement

Provide a description of the enhancement request here.

Time Estimate

Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Select Repository and/or Organization level Project(s) or add alert: NEED PROJECT ASSIGNMENT label
  • Select Milestone as the next official version or Future Versions

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@georgemccabe georgemccabe added type: enhancement Improve something that it is currently doing alert: NEED MORE DEFINITION Not yet actionable, additional definition required alert: NEED ACCOUNT KEY Need to assign an account key to this issue alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels Dec 23, 2022
JohnHalleyGotway added a commit that referenced this issue Jan 12, 2023
…or python embedding. Update the global python instance to reference the variable. Update development.seneca to set it. Still need to: update the documentation, compile script, and other development.machine files.
JohnHalleyGotway added a commit that referenced this issue Jan 12, 2023
JohnHalleyGotway added a commit that referenced this issue Jan 12, 2023
…brary/Frameworks/Python.framework/Versions/3.10/bin/python3
@georgemccabe georgemccabe linked a pull request Jan 13, 2023 that will close this issue
15 tasks
georgemccabe added a commit that referenced this issue Jan 13, 2023
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
@JohnHalleyGotway JohnHalleyGotway added priority: medium Medium Priority requestor: METplus Team METplus Development Team MET: Python Embedding and removed alert: NEED MORE DEFINITION Not yet actionable, additional definition required alert: NEED ACCOUNT KEY Need to assign an account key to this issue alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels Feb 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MET: Python Embedding priority: medium Medium Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants