4 svar
129 visningar
sale 48
Postad: 23 dec 2020 16:28

kompilering fel

Hej,

Jag är ny med python och försöker att köra följande kod:

from matplotlib import pyplot as plt
def draw_square():
ax = matplotlib.axes(xlim = (0, 6), ylim = (0, 6))
square = matplotlib.Polygon([(1, 1), (5, 1), (5, 5), (1, 5)], closed = True)
ax.add_patch(square)
matplotlib.show()
if __name__ == '__main__':
draw_square()

Jag får följande kompileringsfel

vad beror det på, tack

Traceback (most recent call last):                                                                                    
  File "main.py", line 1, in <module>                                                                                 
    import matplotlib.pyplot as plt                                                                                   
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 967, in <module>                                 
    rcParams = rc_params()                                                                                            
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 876, in rc_params                                
    fname = matplotlib_fname()                                                                                        
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 744, in matplotlib_fname                         
    configdir = _get_configdir()                                                                                      
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 613, in _get_configdir                           
    return _get_config_or_cache_dir(_get_xdg_config_dir())                                    

Skaft 2373 – F.d. Moderator
Postad: 23 dec 2020 16:54

Ser ut som att inte hela felutskriften kom med, det är raden längst ner som brukar vara mest givande. Den anger vad felet är (eller försöker), medan raderna ovanför visar kedjan av funktionsanrop som ledde fram till felet.

Men från det du visat ser det inte ut som att felet ligger i din kod, utan snarare att saker inte är riktigt rätt installerade. Vilken pythonversion, och vilken version av matplotlib, använder du?

sale 48
Postad: 23 dec 2020 17:43

Hej,

tack för svaret.

Här kommer hela felutskrift se nedan. själva koden finns i mitt första mejl.

Jag kör denna kod via online pythonkompiler på  

på sidan

https://www.onlinegdb.com/

Här kommer även en länk till den delade filen

https://onlinegdb.com/SJfoXxbTD

 

Traceback (most recent call last):                                                                                      
  File "main.py", line 1, in <module>                                                                                   
    from matplotlib import pyplot as plt                                                                                
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 967, in <module>                                   
    rcParams = rc_params()                                                                                              
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 876, in rc_params                                  
    fname = matplotlib_fname()                                                                                          
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 744, in matplotlib_fname                           
    configdir = _get_configdir()                                                                                        
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 613, in _get_configdir                             
    return _get_config_or_cache_dir(_get_xdg_config_dir())                                                              
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 590, in _get_config_or_cache_dir                   
    return _create_tmp_config_dir()                                                                                     
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 522, in _create_tmp_config_dir                     
    tempdir = os.path.join(tempdir, 'matplotlib-%s' % getpass.getuser())                                                
  File "/usr/lib/python3.4/getpass.py", line 170, in getuser                                                            
    return pwd.getpwuid(os.getuid())[0]                                                                                 
KeyError: 'getpwuid(): uid not found: 14062'                                                                            
                                                                                                                        
                                                  

Skaft 2373 – F.d. Moderator
Postad: 23 dec 2020 17:55

Aha, man kan nog inte förutsätta att plotverktyg är tillgängliga i en sån där kodmiljö. Och i deras FAQ hittar jag följande:

matplotlib är inte del av pythons standardbibliotek, utan något man installerar separat. Det är alltså "third party", och sidan du använder verkar inte stödja några såna tillägg i python.

Laguna Online 30261
Postad: 23 dec 2020 18:09 Redigerad: 23 dec 2020 18:28

Felmeddelandet visar att matplotlib ändå finns där, men dels verkar man få ett nummer ("uid") utan något namn när man använder sidan, dels är det som sagt inte vanligt att ritfunktioner fungerar när man använder python på det viset. Man kan tänka sig att ritandet automatiskt översätts till nån lämplig javascript eller svg, men det är i så fall ett ytterligare lager med funktioner. Nån kan ha gjort något sånt. 

Svara
Close