****************************
Logic Bank Utility Functions
****************************
Utility Functions for Logic Bank, and others (no Logic Bank dependencies).
Addressing Python Path, for proper import operation
===================================================
This is from `stackoverflow <https://stackoverflow.com/questions/40304117/import-statement-works-on-pycharm-but-not-from-terminal/63487350?noredirect=1#comment113296551_63487350>`_. Essentially, many of us have discovered the hard way is that:
* import statements often work in PyCharm
* but fail in VSCode, Command Line, etc
Setting ```PYTHONPATH``` is what makes imports work. I use the following VSCODE `.env` content so that it works for any project:
PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}
This is essentially what PyCharm does when you check **Add Content Roots to PYTHONPATH** in your run/debug configuration. It's a helpful setting, but it spoils you because your code fails outside PyCharm.
Or, if you run in terminal, first export:
export PYTHONPATH=...
add_python_path
###############
You may find it easier to address this in your application, by calling the following:
.. code-block:: Python
def add_python_path(project_dir: str, my_file: str) -> (str, str):
"""
@param project_dir: enclosing path node, with optional "*" for starts-with (e.g., LogicBank, LogicBank*)
@param my_file: callers __file__ variable
@result (path_was_fixed, path)
For example, if you are several levels deep in a project were the root is ```MyProjectRoot```:
.. code-block:: Python
import logic_bank_utils.util as logic_bank_utils
(did_fix_path, sys_env_info) = \
logic_bank_utils.add_python_path(project_dir="MyProjectRoot", my_file=__file__)
print("\n" + did_fix_path + "\n\n" + sys_env_info + "\n\n")
Depends on:
-----------
- Python 3.8
Change Log
----------
0.3.0 - Initial Version
0.4.0 - Improved doc
0.5.0 - More formatting on return string
0.6.0 - Provide for my-project* (startsWith)
Raw data
{
"_id": null,
"home_page": "https://github.com/valhuber/logicbankutils",
"name": "logicbankutils",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.8",
"maintainer_email": "",
"keywords": "",
"author": "Val Huber",
"author_email": "valjhuber@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/d5/c8/3190492d41ea0c6a4f36f96e7883fef846b7327e3465bff470d709d8dbb5/logicbankutils-0.6.0.tar.gz",
"platform": "any",
"description": "\n****************************\nLogic Bank Utility Functions\n****************************\n\nUtility Functions for Logic Bank, and others (no Logic Bank dependencies).\n\nAddressing Python Path, for proper import operation\n===================================================\n\nThis is from `stackoverflow <https://stackoverflow.com/questions/40304117/import-statement-works-on-pycharm-but-not-from-terminal/63487350?noredirect=1#comment113296551_63487350>`_. Essentially, many of us have discovered the hard way is that:\n\n* import statements often work in PyCharm\n\n* but fail in VSCode, Command Line, etc\n\nSetting ```PYTHONPATH``` is what makes imports work. I use the following VSCODE `.env` content so that it works for any project:\n\n\n PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}\n\n\nThis is essentially what PyCharm does when you check **Add Content Roots to PYTHONPATH** in your run/debug configuration. It's a helpful setting, but it spoils you because your code fails outside PyCharm.\n\nOr, if you run in terminal, first export:\n\n export PYTHONPATH=...\n\n\n\nadd_python_path\n###############\n\nYou may find it easier to address this in your application, by calling the following:\n\n.. code-block:: Python\n\n def add_python_path(project_dir: str, my_file: str) -> (str, str):\n \"\"\"\n @param project_dir: enclosing path node, with optional \"*\" for starts-with (e.g., LogicBank, LogicBank*)\n @param my_file: callers __file__ variable\n @result (path_was_fixed, path)\n\nFor example, if you are several levels deep in a project were the root is ```MyProjectRoot```:\n\n.. code-block:: Python\n\n import logic_bank_utils.util as logic_bank_utils\n\n (did_fix_path, sys_env_info) = \\\n logic_bank_utils.add_python_path(project_dir=\"MyProjectRoot\", my_file=__file__)\n print(\"\\n\" + did_fix_path + \"\\n\\n\" + sys_env_info + \"\\n\\n\")\n\n\nDepends on:\n-----------\n- Python 3.8\n\n\n\nChange Log\n----------\n\n0.3.0 - Initial Version\n\n0.4.0 - Improved doc\n\n0.5.0 - More formatting on return string\n\n0.6.0 - Provide for my-project* (startsWith)\n\n\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Utility functions for LogicBase",
"version": "0.6.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "d87e2a0e9ae7ff2ce8263b4e85ebd70f",
"sha256": "16de713b061d27ea4a8b01dda9749ee3c5e2323a1ee1f178931fc38dcbc13bcf"
},
"downloads": -1,
"filename": "logicbankutils-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d87e2a0e9ae7ff2ce8263b4e85ebd70f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.8",
"size": 4824,
"upload_time": "2020-12-11T04:26:31",
"upload_time_iso_8601": "2020-12-11T04:26:31.519091Z",
"url": "https://files.pythonhosted.org/packages/dc/05/dc32559d19e27758c15e05edb2a24ad0a8de6bb1866f9cfddec952ee11eb/logicbankutils-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "4ec6f13b1903e389a1efcdd95998d209",
"sha256": "6b3640c1bd82218f96cf2e2fd052bf962510e1bf173cd9be4d8cf042ad3eee33"
},
"downloads": -1,
"filename": "logicbankutils-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "4ec6f13b1903e389a1efcdd95998d209",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 3871,
"upload_time": "2020-12-11T04:26:32",
"upload_time_iso_8601": "2020-12-11T04:26:32.697981Z",
"url": "https://files.pythonhosted.org/packages/d5/c8/3190492d41ea0c6a4f36f96e7883fef846b7327e3465bff470d709d8dbb5/logicbankutils-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-12-11 04:26:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "valhuber",
"github_project": "logicbankutils",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "logicbankutils"
}