Ошибка при компиляции питон что значит

Asked

Viewed
17k times

#!/usr/bin/python  
str = "this"  
if(1):  
  print "Hi"  
else:  
  print str.any_random_function()  

This doesn’t fail when I run the program. I tried py_compile but that didn’t indicate the error in the else loop either. Now how can I compile the program and detect errors reliably in python code?

  • python
  • compilation

ks1322's user avatar

ks1322

34k14 gold badges109 silver badges164 bronze badges

asked Jan 22, 2010 at 13:48

stacka's user avatar

stackastacka

1411 gold badge1 silver badge3 bronze badges

3

  • I don’t think it’s possible to do that in python. Methods can be dinamically added, the exception captured or the getattr method overloaded. In any of those cases, your error will totally depend or runtime information.

    Jan 22, 2010 at 13:54

  • Actually, this particular example should be caught by pylint.

    Jan 22, 2010 at 14:05

  • It doesn’t fail because it’s not wrong. Your module could be imported in a context where any_random_function is properly defined for the built-in string class.

    Jan 22, 2010 at 14:09

3 Answers

I think your best bet would be pylint.

answered Jan 22, 2010 at 13:50

Geo's user avatar

GeoGeo

93.4k117 gold badges344 silver badges522 bronze badges

Python is a dynamic language, so you can’t simply check for compiling errors like in static languages (C/C++/Java). If you assign str.any_random_function, the above code would be correct (okay that’s a bad example…).

I’d suggest you to use PyDev for Eclipse which automatically finds many common problems in your code, like missing functions/modules etc. It also supports pylint (optional).

answered Jan 22, 2010 at 13:57

AndiDog's user avatar

AndiDogAndiDog

68.7k21 gold badges159 silver badges205 bronze badges

2

  • It’s easy for a random keystore to add a character to a function call. So is it suggested to run pylint through the entire codebase or have unit tests and 100% code coverage to catch that wrong function call? Thanks for replies.

    Jan 22, 2010 at 14:18

  • It takes some time to get used to pylint, and it may produce lots of (useless) messages if not configured correctly. Anyway, as a good software engineer you should always target 100% code coverage using unit tests. The advantage is that they can be run (semi-)automatically — pylint messages must be interpreted by humans.

    Jan 22, 2010 at 14:27

result_str=»»;
for row in range(0,7):
for column in range(0,7):
if (column == 1 or column == 5 or (row == 2 and (column == 2 or column == 4)) or (row == 3 and column == 3)):
result_str=result_str+»* «
else:
result_str=result_str+» «
result_str=result_str+»\n»
print(result_str);

answered May 25 at 4:50

Mydhili Chintalapalli's user avatar

4

  • Welcome to Stack Overflow! While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

    May 25 at 6:04

  • Also, because Python is indentation-sensitive, you need to fix the formatting of your post, by using this info stackoverflow.com/editing-help

    May 25 at 6:05

  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.

    May 25 at 7:35

  • Hello, please don’t just submit code in your answer(s), add some details as to why you think this is the optimal solution.

    May 26 at 17:37

  • The Overflow Blog
  • Featured on Meta

Related

Hot Network Questions

  • Need to Replace multiple spaces between PIPE symbols with no space

  • Tikz: Allow the |[style]| syntax in execute at empty cells

  • What happens if you ignore a howler?

  • What is a good way to phrase «in my experience» in a journal paper?

  • Will my Hydra sink into the bog?

  • Were there any PCs using the i376?

  • Japan e-Visa system cannot read my passport, and embassy have no slot for in-person application, what should I do?

  • Banking System console app in C++

  • Representation of /o/ phoneme in Cuneiform

  • Transcript of discussion between Elon Musk and Israeli PM Benyamin Netanyahu on 18 Sep 2023?

  • Is my replacement light switch wiring correct?

  • Apple ][ nibble disk format specification

  • Comprised of both

  • The usage of «can not» vs. «cannot» in mathematics

  • What’s the deal with צרויה?

  • Can a bucking transformer get «high on its own supply»?

  • Isn’t it convenient to pronounce «-man» in «salesman» and «-men» in «salesmen» differently as you do it in «man [mæn]» and «men [men]»?

  • How can different models of set theory be constructed from the same set of axioms?

  • How does the Way of Mercy monk’s ability Physician’s Touch work exactly?

  • Interesting irrational number

  • Is «I’m fine to [verb]» grammatically correct?

  • How can I renew a Belarusian passport abroad?

  • Does «virtus» apply to women?

  • Has this USAF flight violated russian airspace?

more hot questions

Question feed

Your privacy

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

При работе с C-расширениями в Python возможно столкнуться с ошибкой компиляции, которая выглядит следующим образом: utilsmodule.c:1:20: fatal error: Python.h: No such file or directory

Error situation in different operating systems.

При работе с C-расширениями в Python возможно столкнуться с ошибкой компиляции, которая выглядит следующим образом:

utilsmodule.c:1:20: fatal error: Python.h: No such file or directory
compilation terminated.

Она сообщает о том, что компилятор не может найти заголовочный файл Python.h.

Этот заголовочный файл Python.h включается в исходный код C для обеспечения взаимодействия с интерпретатором Python и является частью Python Development Headers. Когда этот файл не найден, это означает, что Python Development Headers не установлены в системе.

Решение проблемы

Для решения этой проблемы необходимо установить Python Development Headers. Способ установки этого пакета зависит от используемой операционной системы.

Для Ubuntu или Debian:

В системах на базе Debian, таких как Ubuntu, можно использовать следующую команду для установки:

sudo apt-get install python-dev   # для Python 2
sudo apt-get install python3-dev  # для Python 3

Для Fedora:

В Fedora Python Development Headers можно установить с помощью команды:

sudo dnf install python-devel   # для Python 2
sudo dnf install python3-devel  # для Python 3

Для CentOS или RHEL:

В CentOS или RHEL используйте следующую команду:

sudo yum install python-devel   # для Python 2
sudo yum install python3-devel  # для Python 3

Для macOS:

В macOS Python Development Headers предоставляются вместе с Python, когда он устанавливается через Homebrew:

brew install python   # для Python 2
brew install python3  # для Python 3

Для Windows:

В Windows Python Development Headers включены в стандартную установку Python. При установке Python убедитесь, что выбрана опция «Install development headers and libraries».

После установки Python Development Headers ошибка с отсутствием Python.h должна исчезнуть.

Уведомления

  • Начало
  • » Python для новичков
  • » Ошибка при компиляции программы в PyScripter

#1 Янв. 10, 2017 14:54:50

Ошибка при компиляции программы в PyScripter

Написал простую программу т.к. только приступил к изучению данного языка. При компиляции вылазит такая ошибка “error ascii codec can’t encode characters in position 32-38 ordinal not in range (128)” Я уже менял кодировку в меню Формат файла, ничего не помогло. Что это и как избавиться от этой ошибки, чтоб программа нормально откомпилировалась?

Отредактировано Lemonade (Янв. 10, 2017 14:56:59)

Офлайн

  • Пожаловаться

#2 Янв. 10, 2017 15:55:03

Ошибка при компиляции программы в PyScripter

код покажите

Влодение рускай арфаграфией — это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

  • Пожаловаться

#3 Янв. 10, 2017 16:26:38

Ошибка при компиляции программы в PyScripter

С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

  • Пожаловаться

#4 Янв. 10, 2017 18:53:43

Ошибка при компиляции программы в PyScripter

Вот код. И добавил строку # coding: utf-8, но ничего не изменилось

Прикреплённый файлы:
attachment pythonpic.JPG (45,6 KБ)

Офлайн

  • Пожаловаться

#5 Янв. 10, 2017 19:04:57

Ошибка при компиляции программы в PyScripter

1. В пути к модулю не должно находится ничего кроме латиницы.
2. Имя файла и файлов только латиницей.

Офлайн

  • Пожаловаться

#6 Янв. 10, 2017 19:28:04

Ошибка при компиляции программы в PyScripter

Что вы имеете ввиду? Имя файла, как видно из фото, латиницей. Путь к модулю? Это что, сам файл?
Я выбрал Файл — Новый — Создать модуль, или Файл — Новый — Создать файл — Python скрипт, и так, и так открывается окно, пишу просту программу, только нажимаю кнопку Компиляция, сразу это вылетает.

Офлайн

  • Пожаловаться

#7 Янв. 10, 2017 19:39:43

Ошибка при компиляции программы в PyScripter

Путь к модулю это путь к файлу. Если он будет по пути: c:\new\проблема, то будут проблемы. Мало того. У Вас на скрине открыто еще несколько файлов. Уберите их и удалите из папки. Модуль 1 и модуль 2. А лучше прекратите мучить себя и поставьте PyCharm. Бесплатный даже лучше чем PyScripter. Сам на PyScriptere года 4 сидел…

Офлайн

  • Пожаловаться

#8 Янв. 10, 2017 20:26:47

Ошибка при компиляции программы в PyScripter

Это ж я пытался создать файл, чтоб компилировался. Ну странно однако, что ж не так?.. Никто не знает..

Офлайн

  • Пожаловаться

#9 Янв. 10, 2017 20:33:25

Ошибка при компиляции программы в PyScripter

4kpt_IV
А лучше прекратите мучить себя и поставьте PyCharm

Так он мне понравился, т.к легкий, всего 4 мб, а PyCharm 230 мб, зачем зря место на диске занимать.

Отредактировано Lemonade (Янв. 10, 2017 20:34:22)

Офлайн

  • Пожаловаться

#10 Янв. 10, 2017 21:34:28

Ошибка при компиляции программы в PyScripter

Lemonade
PyCharm 230 мб, зачем зря место на диске занимать.

Ну тогда наслаждайтесь глюками.

Lemonade
Это ж я пытался создать файл, чтоб компилировался. Ну странно однако, что ж не так?.. Никто не знает..

Я ответил уже на вопрос. Никто ничего не добавит. Что значит создать? Он его где создает? В виртуальном параллельном мире? Он создает его по пути, который прописан в настройках. Так вот в этом пути не должно быть русских символов. Куда вы установили сам PyScripter и куда Python, с помощью которого он пытается исполнять файл? Где он создает файл? По какому пути? Проверьте все внимательно. Еще были бока у одной версии PyScripter, что он болезненно реагировал на MIME типы в юникоде.

P.S. Ну и он не компилируется, а исполняется. Python — это скриптовый язык.

Офлайн

  • Пожаловаться

  • Начало
  • » Python для новичков
  • » Ошибка при компиляции программы в PyScripter

Имеется задача:
5c34cb0a99cfb343009945.png

Сделал такое решение:

n = int(input())
x = 0
for i in range(n):
    s = input()
    s = s.split(" ")
    for j in s:
        x += int(j)
  
print(int(x / 2))

Почему компилятор выдает ошибку RT? Run-Time Error


  • Вопрос задан

  • 3028 просмотров

Пригласить эксперта

Runtime Error — это не ошибка на стадии компиляции, а уже на стадии выполнения. Или у вас сам компилятор падает с такой ошибкой при попытке компиляции программы? Но учитывая, что у вас Python — то скорее всего, никакого компилятора нет, только интерпретатор.

В тексте самой ошибки обычно пишется её причина. Предлагаю скопировать его сюда тоже. И — входные параметры не помешали бы.
Что за образовательная среда? Мб проблема в ней, а не в коде.


  • Показать ещё
    Загружается…

22 сент. 2023, в 19:00

1000 руб./за проект

22 сент. 2023, в 18:59

30000 руб./за проект

22 сент. 2023, в 18:50

5000 руб./за проект

Минуточку внимания

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def cypherator(text,shift):
    cypher = ""
    abc = ['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m','q','w','e']
    text = text.lower()
    for i in range(0,len(text)):
        letter = text[i]
        try:
            res = abc[(abc.index(letter))+shift]            
        except ValueError:
            cypher+=letter
        else:
            cypher+=res
    print(cypher)
 
def decypherator(text,shift):
    decypher = ""
    abc = ['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m','q','w','e']
    text = text.lower()
    for i in range(0,len(text)):
        letter = text[i]
        try:
            res = abc[(abc.index(letter))-shift]            
        except ValueError:
            decypher+=letter
        else:
            decypher+=res
    print(decypher)
while True:
    print("1. Cypherator\n2.Decypherator")
    a = input()
    if a == "1":
        print("Write your text here: ")
        text = input()
        shift = int(input("Shift = "))
        cypherator(text,shift)
    elif a =="2":
        print("Write your text here: ")
        text = input()
        shift = int(input("Shift = "))
        decypherator(text,shift)
    else :
        print("1. Cypherator\n2.Decypherator")

Понравилась статья? Поделить с друзьями:
  • Ошибка при компиляции игры на андроид unity
  • Ошибка при копировании на планшет
  • Ошибка при компиляции java
  • Ошибка при копировании не удается определить запрошенное значение
  • Ошибка при кодировании elvui