<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:SimSun;
        mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        font-size:12.0pt;
        font-family:SimSun;
        mso-fareast-language:ZH-CN;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:12.0pt;
        font-family:SimSun;
        mso-fareast-language:ZH-CN;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        mso-fareast-language:ZH-CN;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:671178442;
        mso-list-type:hybrid;
        mso-list-template-ids:-228924018 262964234 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:3;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1
        {mso-list-id:1704743839;
        mso-list-type:hybrid;
        mso-list-template-ids:-1156663934 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:1.25in;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.75in;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:2.75in;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.25in;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.75in;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:4.25in;
        text-indent:-9.0pt;}
@list l2
        {mso-list-id:1720473099;
        mso-list-type:hybrid;
        mso-list-template-ids:-434733972 -1378683420 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Thanks John and Moritz for actual testing plus questions and ideas, very helpful.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Am progressing.  Have made a number of configuration efforts and some internal changes.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><ol style='margin-top:0in' start=1 type=a><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Completely uninstalled and reinstalled Python 3.10.2 on primary machine and secondary machine, including scrub of user-cache directories.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Building and testing local installation on primary machine, testing PyPi package installation on second machine.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Completely reviewed the python packaging instructions and related pages, line by line.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Replaced/refactored setup.py to avoid deprecation warning, same information now appearing as setup.cfg and pyproject.toml.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Instrumented the pypi-packaged  __init__.py  to successively test different import statements and report which incantation works.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Started using fourth-digit version variations for testing minor changes to pypi.  Latest is x3d 4.0.62.6<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Updated details about workaround on home page.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Added a file-length check when building to check prior to deployment and ensure that the full x3d.py was getting included in .tar.gz deliverables.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Added direct download link for latest x3d.py on pypi page.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Created dependency for xmlschema package so that XML validation is automatically supported.<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Responding to your questions: the entire build process is automated, uploads to pypi are via twine (with upload progress bar visible) , outputs are logged in version control, and everything is committed/inspectable.<o:p></o:p></span></li></ol><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://pypi.org/project/x3d<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://www.web3d.org/x3d/stylesheets/python/python.html<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://www.web3d.org/x3d/stylesheets/python/x3d.py<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://sourceforge.net/p/x3d/tickets/19<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python<o:p></o:p></span></li></ul><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>My current test arrangement is much more predictable/reliable.  Made some small improvements to package itself (e.g. exception handling for XML validation when network is down or host certificate is mismatched).  Only a single package is created, x3d.py with no subpackages.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Status:<o:p></o:p></span></p><ol style='margin-top:0in' start=12 type=a><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>Regular install of x3d.py requires regular setup in source,       i.e. </span><b>from x3d     import *</b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:-.25in;mso-list:l1 level1 lfo2'><span style='font-family:"Calibri",sans-serif'>PyPi installation</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'> of x3d.py requires double-prefix in source, i.e. </span><b>from x3d.x3d import *</b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p></o:p></span></li></ol><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>And so, getting pretty close… I suspect the missing fix will be going in setup.cfg file, but not sure what it is yet.  Have poked the following excerpted lines below, but it is still not cooperating.  All testing and insights remain welcome.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://packaging.python.org/en/latest/tutorials/packaging-projects (Windows tabs)<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://docs.python.org/3/tutorial/modules.html#packages <o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://docs.python.org/3/tutorial/modules.html#importing-from-a-package<o:p></o:p></span></li></ul><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/setup.cfg<o:p></o:p></span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo3'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'>https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/build.package.prepare.log.txt<o:p></o:p></span></li></ul><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'># setup.cfg<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>[options]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>package_dir =<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>    = src<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>include_package_data = True<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>packages = find:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>install_requires = xmlschema<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>python_requires = >=3.6<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>[options.packages.find]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>where = src<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'><o:p> </o:p></span></p></div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>X3D graphics, virtual worlds, Navy robotics https://</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'> </span><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-US'>faculty.nps.edu/brutzman<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Hans Moritz Guenther <hgunther@mit.edu> <br><b>Sent:</b> Sunday, March 6, 2022 4:08 AM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; vmarchetti@kshell.com; X3D-Public <x3d-public@web3d.org><br><b>Cc:</b> John Carlson <yottzumm@gmail.com>; Peitso, Loren (CIV) <lepeitso@nps.edu><br><b>Subject:</b> Re: [x3d-public] x3d.py package: Some feedback and suggestion for improvement; tuples and lists; updated x3d.py<o:p></o:p></span></p></div></div><div><div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 3/5/22 9:08 PM, Brutzman, Donald (Don) (CIV) wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks Moritz for looking at this.  However, we can’t really expect any PyPi user who types “pip install x3d” to go through such a process.<o:p></o:p></p></blockquote><p>A Pypi user does not have to go through that - unless their local installation is messed up in some way; I was just trying to debug. Plenty of Pypi packages work just like that.<o:p></o:p></p><p><o:p> </o:p></p><p>However, right now the problem seems to be different:<o:p></o:p></p><p>Something changed in the Pypi setup for this package between 4.0.57 and 4.0.58: >From 4.0.58 on, "pip install" only downloads and installs the metadata of the package (license file etc.), but not the actual code. Note in the following output how an installation with 4.0.57 gives me two directories in my "site-packages" called "x3d" (with the code) and "x3d-4.0.57-py3-none-any.whl" (with the meta data of the package).<o:p></o:p></p><p>However, starting with 4.0.58, I ONLY get the metadata and not the actual code - and thus an "import x3d" must fail just because the code is not actually installed. It also no longer downloads the actual ~400 kB wheel:<o:p></o:p></p><p><br>(kitchensink) MoritzAirRoseGold ~/mambaforge/envs/kitchensink/lib/python3.10> pip install x3d==4.0.56<br>Collecting x3d==4.0.56<br>  Downloading x3d-4.0.56-py3-none-any.whl (418 kB)<br>     |████████████████████████████████| 418 kB 2.3 MB/s            <br>Installing collected packages: x3d<br>  Attempting uninstall: x3d<br>    Found existing installation: x3d 4.0.52<br>    Uninstalling x3d-4.0.52:<br>      Successfully uninstalled x3d-4.0.52<br>Successfully installed x3d-4.0.56<br>(kitchensink) MoritzAirRoseGold ~/mambaforge/envs/kitchensink/lib/python3.10> ls site-packages/x3*   <br>site-packages/x3d:<br>__init__.py __pycache__ x3d.py<br><br>site-packages/x3d-4.0.56.dist-info:<br>INSTALLER     LICENSE       METADATA      RECORD        REQUESTED     WHEEL         license.html  license.txt   top_level.txt<br>(kitchensink) MoritzAirRoseGold ~/mambaforge/envs/kitchensink/lib/python3.10> pip install x3d==4.0.57<br>Collecting x3d==4.0.57<br>  Downloading x3d-4.0.57-py3-none-any.whl (16 kB)<br>Installing collected packages: x3d<br>  Attempting uninstall: x3d<br>    Found existing installation: x3d 4.0.56<br>    Uninstalling x3d-4.0.56:<br>      Successfully uninstalled x3d-4.0.56<br>Successfully installed x3d-4.0.57<br>(kitchensink) MoritzAirRoseGold ~/mambaforge/envs/kitchensink/lib/python3.10> ls site-packages/x3*   <br>INSTALLER     LICENSE       METADATA      RECORD        REQUESTED     WHEEL         license.html  license.txt   top_level.txt<o:p></o:p></p><p><o:p> </o:p></p><p><o:p> </o:p></p><p>How do you upload the package to Pypi? By hand? Do you use some uploader script or do it by hand?<o:p></o:p></p><p>If you follow for example <a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpackaging.python.org%2Fen%2Flatest%2Ftutorials%2Fpackaging-projects%2F&data=04%7C01%7Cbrutzman%40nps.edu%7C71204b50571049885f4d08d9ff69ef47%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637821652758101749%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=atx%2FZE0pZA5RSJGmWCkcPGdY1thic5PpQLQqdqmABGM%3D&reserved=0">https://packaging.python.org/en/latest/tutorials/packaging-projects/</a> : <o:p></o:p></p><p>- When you do "python -m build" in your local directory, do you see the actual code file (the .tar.gz file) or only the wheel metadata (the whl file)?<o:p></o:p></p><p>- When you upload (python3 -m twine upload ....) do you see uploading of both file?<o:p></o:p></p><p>[Of course, if you use a different method or uploader to make the wheels and update to Pypi, then the commands and output will be different.]<o:p></o:p></p><p>Moritz<o:p></o:p></p><p><o:p> </o:p></p><pre>-- <o:p></o:p></pre><pre>Hans Moritz Günther<o:p></o:p></pre><pre>Massachusetts Institute of Technology<o:p></o:p></pre><pre>Kavli Institute for Astrophysics and Space Research<o:p></o:p></pre><pre>77 Massachusetts Avenue<o:p></o:p></pre><pre>NE83-569<o:p></o:p></pre><pre>Cambridge, MA 02139<o:p></o:p></pre><pre><a href="mailto:hgunther@mit.edu">hgunther@mit.edu</a><o:p></o:p></pre><pre><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fspace.mit.edu%2Fhome%2Fguenther%2F&data=04%7C01%7Cbrutzman%40nps.edu%7C71204b50571049885f4d08d9ff69ef47%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637821652758101749%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=bo7wTcimNGdJaXgo%2FK1%2B4ideJFqpvZp7qh96xyS%2BaKs%3D&reserved=0">https://space.mit.edu/home/guenther/</a><o:p></o:p></pre></div></div></body></html>